Условный оператор if проверяет значение выражения. Если оно равно true, Shell выполняет следующий за if оператор, если false, то следующий оператор пропускается. Формат оператора if:
if <условие>
then
list1
else
list2
fi
Команда test (проверить) используется с условным оператором if и операторами циклов. Действия при этом зависят от кода возврата test. Test проводит анализ файлов, числовых значений, цепочек символов. Нулевой код выдается, если при проверке результат положителен, ненулевой код при отрицательном результате проверки.
В случае анализа файлов синтаксис команды следующий:
test [ -rwfds] file
где
-r – файл существует и его можно прочитать (код завершения 0);
-w – файл существует и в него можно записывать;
-f – файл существует и не является каталогом;
-d – файл существует и является каталогом;
-s – размер файла отличен от нуля.
При анализе числовых значений команда test проверяет, истинно ли данное отношение, например, равны ли А и В . Сравнение выполняется в формате:
-eq А = В
-ne А <> B
test A -ge B эквивалентно А >= В
-le А <= В
-gt А > В
-lt А < В
Отношения слева используются для числовых данных, справа – для символов.
Кроме команды test имеются еще некоторые средства для проверки:
! - операция отрицания инвертирует значение выражения, например, выражение if test true эквивалентно выражению if test ! false;
o - двуместная операция "ИЛИ" (or) дает значение true, если один из операндов имеет значение true;
a - двуместная операция "И" (and) дает значение true, если оба операнда имеют значение true.
2.5. Циклы
Оператор цикла с условием while true и while false. Команда while (пока) формирует циклы, которые выполняются до тех пор, пока команда while определяет значение следующего за ним выражения как true или false. Фоpмат оператора цикла с условием while true:
Достарыңызбен бөлісу: |