Ветвление вычислительного процесса осуществляется с помощью оператора if:
if список_команд1; then
список_команд2
[ else
список_команд3]
fi
(В квадратных скобках указывается необязательная часть команды.)
Список_команд — это одна или несколько команд (для задания пустого списка используется: (двоеточие). Список_команд1передает оператору if код возврата последней команды из списка. Если код равен 0, то выполняются команды из списка_команд2, таким образом нулевой код возврата эквивалентен значению «истина». В противном случае выполняются команды из списка_команд3, если он указан.
Проверка условия может осуществляется с помощью команды test. Аргументами этой команды могут быть имена файлов, числовые и нечисловые строки. Она используется в следующих режимах:
● Проверка файлов: test -ключ имя_файла
Ключи: -r файл существует и доступен для чтения;
-w файл существует и доступен для записи;
-x файл существует и доступен для исполнения;
-f файл существует и является обычным файлом (т. е. не каталогом, не файлом устройства и т.п.);
|
|
-s файл существует, является обычным файлом и не пуст, т. е. его размер больше 0 байт;
-d файл существует и является каталогом.
● Сравнение чисел: test число1 -ключ число2
Ключи: -eq равно;
-ne не равно;
-lt меньше;
-le меньше или равно;
-gt больше
-ge больше или равно.
● Сравнение строк: test [строка1] выражение строка2
[-n] строкастрока не пуста;
-z строкастрока пуста;
строка1 = строка2строки равны;
строка1!= строка2строки не равны.
В качестве альтернативой записи test можно использовать команду [ (открывающая квадратная скобка), при этом, например, для проверки существования файла вместо
$ if test -f /bin/bash; then echo 'bash найден!'; fi
bash найден!
можно использовать более аккуратно выглядящую конструкцию
$ if [ -f /bin/bash ]; then echo 'bash найден!'; fi
bash найден!