Linux: Полное руководство
Шрифт:
Напоминаю, что специальные символы в значениях параметров нужно экранировать. Экранировать одиночный символ можно символом «\» (обратный слэш), несколько — апострофами или двойными кавычками. Разница в том, что внутри двойных кавычек выполняются подстановки значений: сравните вывод команд
Организовать диалоговый ввод значения переменной можно с помощью встроенной команды
Ключ – n команды
Одной командой
Пользователь должен ввести значения переменных, разделяя их пробелами, и для окончания ввода нажать <Ввод>. Если введено меньше значений, чем нужно, оставшимся переменным будет присвоена пустая строка. Если больше, то весь остаток строки будет присвоен последней из перечисленных переменных.
8.2. Подстановки
Кроме подстановки обычных переменных (п.3.4.4) и раскрытия шаблонов имен файлов (п.3.4.5), оболочка bash умеет выполнять еще и такие подстановки:
♦ Подстановка тильды:
~ заменяется на имя домашнего каталога пользователя, запустившего сценарий;
~+ заменяется на путь к текущему каталогу;
~- заменяется на путь к предыдущему каталогу.
♦ Раскрытие скобок:
Пробелов внутри скобок быть не должно. Эта функция полезна, когда нужно применить одну команду к нескольким файлам, не подходящим под общий шаблон:
♦ Подстановка арифметических выражений:
Например, количество часов, прошедшее с момента запуски оболочки, можно подсчитать командой:
8.3. Массивы
Интерпретатор bash поддерживает одномерные массивы с неограниченным числом элементов. В других оболочках существуют определенные ограничения на массивы, например, в ksh максимальное число элементов массива ограничено 1024 элементами.
Нумерация элементов начинается с нуля. Тип элементов массива, как и тип параметров, строковый. Присвоить значение элементу массива можно с помощью такой конструкции:
Обратиться к значению элемента массива можно следующим образом:
Например, вывести значение первого элемента массива можно так:
Обратиться ко всем элементам массива сразу можно с помощью одного из выражений:
Второе выражение нужно использовать, если значение хотя бы одного элемента массива может содержать пробелы.
Можно инициализировать массив целиком: команда
эквивалентна списку
Эти способы инициализации массивов могут применяться как в bash, так и в ksh и в других командных оболочках. А следующий способ работает только в bash:
8.4. Управляющие структуры
Напоминаю (п.3.4.7), что список команд — это одиночная команда, конвейер или последовательность команд/конвейеров, разделенных одним из операторов: ; && ||, завершенная точкой с запятой. Не забывайте ставить точку с запятой даже после одиночной команды, терять ее — типичная ошибка начинающих программистов.
В синтаксис следующих команд квадратные скобки не входят: они ограничивают необязательные выражения.
8.4.1. Условные операторы
Оператор варианта case
Синтаксис:
Ищется первый шаблон, совпадающий со значением. Если он найден, то выполняется соответствующий ему список команд, завершенный двумя символами «;». Шаблон и список разделяются символом «)». Одному списку команд может соответствовать несколько шаблонов, тогда они разделяются символом «|».
Грань риска
Детективы:
триллеры
рейтинг книги
Варяги и Русь
Всемирная история в романах
Проза:
историческая проза
рейтинг книги
Учитель из прошлого тысячелетия
6. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
рейтинг книги
Круг чтения. Афоризмы и наставления
Золотой фонд эзотерики
Проза:
афоризмы
рейтинг книги
Сатанизм для интеллигенции
Научно-образовательная:
религиоведение
рейтинг книги
Американская фантастика
Библиотека литературы США
Фантастика:
научная фантастика
рейтинг книги
Невольничий караван
Приключения:
прочие приключения
рейтинг книги
Война Цветов
10. Мастера меча и магии
Фантастика:
фэнтези
рейтинг книги
Супервольф
Секретный фарватер
Проза:
современная проза
рейтинг книги
Сент Ив
Приключения:
исторические приключения
рейтинг книги