Основы программирования в Linux
Шрифт:
Код завершения команды
Имейте в виду, что вы должны вставлять пробелы между квадратной скобкой
Если вы предпочитаете помещать слово
Варианты условий, которые вы можете применять в команде
Таблица 2.4
Варианты условий | Результат |
---|---|
Сравнения строк | |
Строка1 = Строка2 | True (истина), если строки одинаковы |
Строка1 != Строка2 | True (истина), если строки разные |
– n Строка | True (истина), еслиСтрока не null |
– z Строка | True (истина), еслиСтрока null (пустая строка) |
Сравнения чисел | |
Выражение1– eq Выражение2 | True (истина), если выражения равны |
Выражение1– ne Выражение2 | True (истина), если выражения не равны |
Выражение1– gt Выражение2 | True (истина), еслиВыражение1 больше, чемВыражение2 |
Выражение1– ge Выражение2 | True (истина), еслиВыражение1 не меньшеВыражение2 |
Выражение1– lt Выражение2 | True (истина), еслиВыражение1 меньше, чемВыражение2 |
Выражение1– lе Выражение2 | True (истина), еслиВыражение1 не большеВыражение2 |
! Выражение | True (истина), еслиВыражение ложно, и наоборот |
Файловый флаг | |
– d файл | True (истина), еслифайл — каталог |
– е файл | True (истина), еслифайл существует. Исторически, опция – e не была переносима на другие платформы, поэтому обычно применяется – f |
– f файл | True (истина), еслифайл — обычный файл |
– g файл | True (истина), если дляфайла установлен бит set-group-id |
– r файл | True (истина), если файл доступен для чтения |
– s файл | True (истина), если файл ненулевого размера |
– u
| True (истина), если дляфайла установлен бит set-user-id |
– v файл | True (истина), еслифайл доступен для записи |
– х файл | True (истина), если файл — исполняемый файл |
Вас могли заинтересовать непонятные биты set-group-id и set-user-id (также называемые set-gid и set-uid). Бит set-uid предоставляет программе права владельца, а не просто ее пользователя, бит set-gid предоставляет программе права группы. Эти биты устанавливаются командой
Мы немного сами себя обогнали, но далее следует пример тестирования состояния файла /bin/bash, так что вы сможете увидеть, как это выглядит на практике.
Для того чтобы тест мог оказаться истинным, предварительно, для проверки всех файловых флагов требуется наличие файла. Данный перечень включает только самые широко используемые опции команды
Теперь, когда вы познакомились с условиями, можно рассмотреть управляющие структуры, использующие эти условия.
Управляющие структуры
В командной оболочке есть ряд управляющих структур или конструкций, похожих на аналогичные структуры в других языках программирования.
В следующих разделах элемент синтаксической записи операторы — это последовательности команд, которые выполняются, когда или пока условие удовлетворяется или пока оно не удовлетворяется.
Управляющий оператор
Наиболее часто оператор
В результате будет получен следующий вывод на экран:
В этом сценарии для проверки содержимого переменной
Обратите внимание на дополнительные пробелы, используемые для формирования отступа внутри оператора
К сожалению, с этим простым сценарием связано несколько проблем. Во-первых, он принимает в значении