Урок 20: Условия в Bash
Скрипт из предыдущего урока создаёт резервную копию, но не сообщает, удалось ли это. Мы добавим к нему условие if. [ -f file ] проверяет существование файла; [ -d dir ] проверяет существование каталога; [ $? -eq 0 ] проверяет код возврата. [ — это настоящая команда: пробелы обязательны до и после ка
if — это просто «если»: [ -f ] спрашивает «существует ли файл?», then значит «то», а fi закрывает блок — это просто if, написанное наоборот. Одно нужно запомнить: [ ] — это самостоятельная команда, поэтому вокруг неё нужны пробелы, как у любой команды.
- if в bash
- if [ condition ]; then ... fi. [ ] возвращает код возврата 0 (true) или 1 (false). then открывает тело блока. fi (=if наоборот) закрывает его. else на отдельной строке допустим для альтернативного блока.
- операторы test
- -f: обычный файл существует. -d: каталог существует. -e: путь существует (любого типа). -eq: равно (числа). -ne: не равно. -z: пустая строка. -n: непустая строка.