Читаем Linux: Полное руководство полностью

В результате подстановки шаблона получается список слов. К этим словам оператор добавляет порядковые номера и выводит весь набор в стандартный поток ошибок (stderr). Если шаблон опущен, то вместо него используется список позиционных параметров. После этого оболочка выводит приглашение и считывает строку из стандартного потока ввода (stdin). Если строка содержит номер, соответствующий какому-либо слову из списка, то переменная получает это слово в качестве значения. Если в строке подходящего номера нет, то значением переменной становится пустая строка. После этого выполняется список команд, и процедура повторяется до тех пор, пока в строке ввода не встретится символ конца файла (введите Ctrl+D) или пока в списке команд не встретится команда break или return.

Этот оператор полезен для создания нумерованных пунктов меню. Например, у меня в каталоге ~/temp есть три файла: proto.txt, file.txt и README. В листинге 8.3. приведен фрагмент сценария, позволяющего быстро просмотреть любой из них.

Листинг 8.3. Пример использования оператора select

echo "Выберите файл для просмотра:"

select file in ~/temp/* Quit;

do

 if [ -f $file ]; then cat $file;

 else break;

 fi

done

Запустив этот сценарий, я увижу на экране:

Выберите файл для просмотра:

1) /home/den/temp/file.txt

2) /home/den/temp/proto.txt

3) /home/den/temp/README

4) Quit

#?

Последняя строка — это приглашение, устанавливаемое переменной окружения PS3.

8.5. Условная подстановка параметров

Условная подстановка позволяет проверить, установлен ли определенный параметр, или использовать вместо его значения другое. Значение самого параметра при этом не изменяется. Допустимые виды условных подстановок перечислены в таблице 8.4.


Условная подстановка Таблица 8.4

КонструкцияВыполняет подстановку
${параметр:-строка}Значение по умолчанию. Если параметр имеет непустое значение, то подставляется оно, иначе — указанная строка
${параметр:=строка}Присваивание значения по умолчанию. Если параметр не имеет непустого значений, то ему присваивается «строка», после чего значение подставляется. Конструкция допустима только для переменных оболочки
${параметр:?сообщение}Ошибка, если пусто. Если параметр не имеет непустого значения, то выводится указанное сообщение. Сообщение можно опустить, тогда будет выведено стандартное сообщение
${параметр:+строка}Дополнительное значение. Если параметр имеет непустое значение, подставляется «строка», иначе — пустая строка
${параметр#шаблон}Подставляется значение параметра, в котором из головной части удален наименьший фрагмент, удовлетворяющий шаблону
${параметр##шаблон}Подставляется значение параметра, в котором из головной части удален наибольший фрагмент, удовлетворяющий шаблону
${параметр%шаблон}Подставляется значение параметра, в котором из хвостовой части удален наименьший фрагмент, удовлетворяющий шаблону
${параметр%%шаблон}Подставляется значение параметра, в котором из хвостовой части удален наибольший фрагмент, удовлетворяющий шаблону
${#параметр}Если параметр есть * или @, подставляется количество позиционных параметров, иначе — длина значения параметра в байтах
Перейти на страницу:

Все книги серии Полное руководство

Похожие книги

Полное руководство по Microsoft Windows XP
Полное руководство по Microsoft Windows XP

В книге известного американского автора описывается среда ОС Windows XP и принципы ее функционирования, приведен сравнительный анализ Windows XP с предшествующими версиями операционной системы Windows. Рассматриваются вопросы применения и модификации нового интерфейса с целью получения прямого доступа ко всем функциям Windows XP обсуждаются варианты подключения к компьютерным сетям. Несколько разделов посвящены работе с реестром и конфигурационными файлами, мультимедийным функциям и разнообразным системным службам, а также методам решения проблем с программным обеспечением и оборудованием. Особое внимание уделено обеспечению безопасности операционной системы.Издание адресовано пользователям и сетевым администраторам, желающим активно применять возможности операционной системы Windows XP (в том числе и недокументированные).

Питер Нортон , Джон Поль Мюллер

ОС и Сети, интернет / ОС и Сети / Книги по IT
Linux
Linux

Книга посвящена операционной системе Linux. Приводятся подробные сведения о ее особенностях и возможностях, идеологии файловой системы, инсталляции и основных командах, вопросах компиляции ядра, настройках и сервисах. Большое внимание уделяется организации на базе Linux различных серверов и служб: электронной почты, WWW, FTP, INN, Proxy, NTP, а также проблемам администрирования сети, обеспечения безопасной работы и другим вопросам. Описаны способы настройки под Linux рабочих станций, в т. ч. и бездисковых, установки и эксплуатации на них графических сред типа X Window, а также конфигурирование модемных соединений, принтеров и сканеров, отладка взаимодействия с Linux-машинами такой «экзотической» периферии, как карманные компьютеры, мобильные телефоны, TV-тюнеры и т. п. Рассматриваемые в книге конфигурационные файлы и структура каталогов соответствуют дистрибутиву Red Hat Linux 7.x, тем не менее, при минимальной адаптации все упоминаемые в книге пакеты устанавливаются в любом дистрибутиве Linux.Для начинающих администраторов или пользователей Linux.

Алексей Александрович Стахнов

ОС и Сети, интернет