Аллен Питер В.
Шрифт:
Обратиться к значению элемента массива можно следующим образом:
Например, вывести значение первого элемента массива можно так:
Обратиться ко всем элементам массива сразу можно с помощью одного из выражений:
Второе выражение нужно использовать, если значение хотя бы одного элемента массива может содержать пробелы.
Можно инициализировать массив целиком: команда
эквивалентна списку
Эти способы инициализации массивов могут применяться как в bash, так и в ksh и в других командных оболочках. А следующий способ работает только в bash:
8.4. Управляющие структуры
Напоминаю (п.3.4.7), что список команд — это одиночная команда, конвейер или последовательность команд/конвейеров, разделенных одним из операторов: ; && ||, завершенная точкой с запятой. Не забывайте ставить точку с запятой даже после одиночной команды, терять ее — типичная ошибка начинающих программистов.
В синтаксис следующих команд квадратные скобки не входят: они ограничивают необязательные выражения.
8.4.1. Условные операторы
Оператор варианта case
Синтаксис:
Ищется первый шаблон, совпадающий со значением. Если он найден, то выполняется соответствующий ему список команд, завершенный двумя символами «;». Шаблон и список разделяются символом «)». Одному списку команд может соответствовать несколько шаблонов, тогда они разделяются символом «|».
В шаблонах могут использоваться метасимволы *, ? и [] (о подстановке метасимволов сказано в п.3.4.5). С их помощью можно организовать инструкцию, действующую как default в операторе switch языка С.
Порядок сравнения шаблонов со значением не определен. Первое совпадение прекращает дальнейшее сравнение и приводит к выполнению соответствующего списка команд и выходу из структуры case — поведение, больше похожее на поведение оператора case в языке Паскаль, чем на switch в языке С.
Листинг 8.1. Пример использования оператора case
Обратите внимание на апострофы вместо кавычек во втором списке: они экранируют подстроку «!!» от подстановки предыдущей команды.
Синтаксис:
Эта конструкция работает так же, как в других языках программирования. Сначала выполняются команды из
Можно использовать сокращенный вариант, только if-then-fi:
– ne 0 ]; then echo "Ошибка. Смотри протокол"; fi;
В вышеприведенной команде вместо анализа кода завершения списка использована проверка условия. Две формы такой проверки эквивалентны: встроенная команда test и [условие]. Например, для проверки существования файла можно написать