Структурные конструкции в bash
В bash вы можете использовать команду if для проверки состояния. Как пример, предположим что вам необходимо сделать бакап в пятницу ночью и для этого вы должны выполнить команду mysqldump.Структура тогда будет такой —
If today Friday ---> then execute mysqldump | | Otherwise ---> echo an error message on screen
Немного о логике
Нужно помнить, что структура выполнения скрипта последовательная, тоесть, пока не будет завершено какое-то действие следующее действие не начнет выполнятьсяю
Каждая команда и/или выполняеться один раз в последовательном порядке
Вы не сможете написать комплексное приложение используя последовательные скрипты
Тем не мение, с помощью команды if вы сможете выборочно запускать определенные команды или части вашего скрипта
При помощи команды if вы можете сделать ваш скрипт более инрактивным и сообзать об возникших ошибках
Нужно так же четко понимать что такое «состояние». Состояние есть не что иное как результат выражения в логической форме, тоесть ложь или истина(true, false). Тоесть, другими словами состаяние может быть правдой или ложью. Простейший пример :
echo $(( 5 < 2 ))
результатом будет 0. bash сравнивает два числа и возвращает результат правда или ложь. В нашем случаи результа — ложь. Необходимо запомнить, что в bash-e 0 это ложь, а 1 это правда.
Команда Test
Команда test используеться для проверки состояния фалов, сравнения строк и арефметических сравнений.
Синтаксис соманды test:
test condition
или
test condition && true-command
или
test condition || false-command
или
test condition && true-command || false-command
Давайте расмори два таких пример. Введите в командной строке:
test 5 -gt 2 && echo "Yes" test 1 -gt 2 && echo "Yes"
В первом случаи, так как 5 больше 2 — правда, мы увидим «Yes». Во втором, так как 1 больше 2 — ложь, то, мы ничего не увидим. Тоесть, в случаи если состояние равно 1 у нас выполняеться команда стоящая после &&. Если вам необходимо выполнять какую-то команду в случаи состояния равного 0, то необходимо использовать ||. Покажу вам на примере:
test "$a" == "$b" && echo "Yes" || echo "No"
В данном примере если $a равно $b то выполниться echo «Yes» и на экране мы увидим «Yes», если же $a не равно $b, то выполниться echo «No» и на экране мы увидим «No»
Операторы команды test при числовом сравнении:
Оператор Синтаксис Описание eq INTEGER1 -eq INTEGER2 INTEGER1 эквивалентно INTEGER2 ge INTEGER1 -ge INTEGER2 INTEGER1 больше или эквивалентно INTEGER2 gt INTEGER1 -gt INTEGER2 INTEGER1 больше INTEGER2 le INTEGER1 -le INTEGER2 INTEGER1 меньше или эквивалентно INTEGER2 lt INTEGER1 -lt INTEGER2 INTEGER1 меньше INTEGER2 ne INTEGER1 -ne INTEGER2 INTEGER1 не эквивалентно INTEGER2 -z -z STRING Правда если длинна STRING равна 0 -n -n STRING Правда если длинна STRING не 0 == STRING1 == STRING2 Правда если STRING1 идентично STRING2 != STRING1 != STRING2 Правда если STRING1 не идентично STRING2 < STRING1 < STRING2 Правда если STRING1 лексически отсортировано перед STRING2 > STRING1 > STRING2 Правда если STRING1 лексически отсортировано после STRING2
Часть 1: скрипт Hellow World
Часть 2: Переменные
Часть 3: Специальные параметры
Часть 4: Одинарные и двойные кавычки. Математические операции
Часть 5: Структурные конструкции и команда test
Часть 6: Структура If…then…else
Часть 7: Подмножества и части строк. Размеры