Дата:2012-12-11
Применяются для логического управления данными, когда
необходимо обеспечить логическую последовательность выполнения команд
при тех или иных условиях.
В Bash после инструкции if
выполняеются именно команды и в том случае если эта команда равна статусу ноль,
выполняется другая команда из then.
Для примера можно создать два файлика поместив в них следующее:
1) vi if-then1.sh
#!/bin/bash
if ifconfig eth1
then
echo "work"
fi
2) vi if-then2.sh
#!/bin/bash
if ifconfig eth2
then
echo "work"
fi
echo "no work"
В данном случае мы проверили как отрабатываются команды.
Примечание.
Выполните команду
vi if-then3.sh
#!/bin/bash
if ifconfig eth1
then
echo "work"
fi
/etc/init.d/network restart
Заметьте, что инструкция if-the определяет успешность выполнения команды, после чего продолжает выполнять другие команды если первая была выполнена успешно. В этом случае какой бы результат нас не ждал с интерфейсом Eth1 все равно выполнится команды по перезагрузке сетевых интерфейсов.
Инструкция if-then-else
Ее суть достаточно проста:
ЕСЛИ команда после IF имеет статус выхода ноль
ТОГДА выполняется команды за THEN
ИНАЧЕ выполняется команда следующая за ELSE
vi openvpn.sh
#!/bin/bash
if ifconfig tap0
then
echo "work"
else
/etc/init.d/openvpn restart
fi
При помощи этого можно проверить работает ли у нас интерфейс
OpenVPN под именем tap0.
ЕСЛИ команды ifconfig tap0 возвращает ноль
ТОГДА выводим "WORK"
ИНАЧЕ перестартуем OpenVPN
Статус выхода ноль - успешно
завершенная команда.
Ну и по традиции последней идет проверка нескольких условий
(одно за другим)
1 Вариант
#!/bin/bash
if [ $USER = aroma ]
then
echo "Hello aroma"
fi
if [ $USER = root ]
then
echo "Hello root"
fi
if [ $USER = sem ]
then
"Hello sem"
fi
2 Вариант
#!/bin/bash
if [ $USER = aroma ]
then
echo "Hello aroma"
elif [ $USER = root ]
then
echo "Hello root"
elif [ $USER = sem ]
then
"Hello sem"
fi
3 Вариант - команда CASE
#!/bin/bash
case $USER in
aroma) echo "Привет aroma";;
root) echo "Привет root";;
sima) echo "Привет sem";;
*) echo "Вы не имеете право работать с этой базой";;
esac
Далее >>> Проверка условий в Bash
Количество просмотров: 5775
Комментарии к статье:
Вам сложно было проверить примеры? Просто попробуйте их запустить. В помойку таких учителей.
Добавить комментарий
Автор комментария: adm
Дата: 2017-03-01
--> Ivan. Примеры все работают.