5.6.1 Разновидности параметров

5.6.1 Разновидности параметров

Параметры разделяются на три класса: позиционные параметры, специальные параметры (именами которых как раз и служат перечисленные только что специальные символы) и переменные оболочки.

Имена (идентификаторы) позиционных параметров состоят из одной или более цифр (только не из одиночного нуля). Значениями позиционных параметров являются аргументы, которые были заданы при запуске оболочки (первый аргумент является значением позиционного параметра 1, и т. д.). Изменить значение позиционного параметра можно с помощью встроенной команды set. Значения этих параметров изменяются также на время выполнения оболочкой одной из функций (об этом будет рассказано ниже, в разд. 5.8).

Специальные параметры являются шаблонами, замена (подстановка) которых производится следующим образом.

Таблица 5.2. Специальные параметры.

Параметр Правила замены
* Заменяется позиционными параметрами, начиная с первого. Если замена производится внутри двойных кавычек, то этот параметр заменяется на одно единственное слово, составленное из всех позиционных параметров, разделенных первым символом специальной переменной IFS (о ней будет сказано ниже). То есть ``$*' эквивалентно ``$1c$2c…', где c - первый символ в значении переменной IFS. Если IFS присвоено пустое значение или ее значение не установлено, параметры разделяются пробелами
@ Заменяется позиционными параметрами, начиная с первого. Если замена производится внутри двойных кавычек, то каждый параметр заменяется отдельным словом. Так, `` $@' эквивалентно '$1' '$2'… Если позиционных параметров нет, то значение не присваивается (параметр @ просто удаляется)
# Заменяется десятичным значением числа позиционных параметров
? Заменяется статусом выхода последнего из выполнявшихся на переднем плане программных каналов
- (дефис) Заменяется текущим набором значений флагов, установленных с помощью встроенной команды set или при запуске самой оболочки
$ Заменяется идентификатором процесса (PID) оболочки
! Заменяется идентификатором процесса (PID) последней из выполняющихся фоновых (асинхронно выполнявшихся) команд
0 Заменяется именем оболочки или запускаемого скрипта. Если bash запускается для выполнения командного файла, $0 равно имени этого файла. В противном случае это значение равно полному пути к оболочке
_ (подчеркивание) Заменяется последним аргументом предыдущей из выполнявшихся команд (если это параметр или переменная, то подставляется ее значение)

Специальные параметры, перечисленные в приведенной выше таблице, отличаются тем, что на них можно только ссылаться; присваивать им значения нельзя.

Переменная с точки зрения оболочки - это параметр, обозначаемый именем. Значения переменным присваиваются с помощью оператора следующего вида

[user]$ name=value

где name - имя переменной, а value - присваиваемое ей значение (может быть пустой строкой). Имя переменой может состоять только из цифр и букв и не может начинаться с цифры. Значением может быть любой текст. Если значение содержит специальные символы, то его надо взять в кавычки. Присвоенное значение этих кавычек не содержит, естественно. Если переменная задана, то ее можно удалить, используя встроенную команду оболочки unset.

Набор всех установленных переменных оболочки с присвоенными им значениями называется окружением (environment) или средой оболочки. Вы можете просмотреть его с помощью команды set без параметров (только, может быть, следует организовать конвейер "set | less"). В выводе этой команды все переменные окружения перечисляются в алфавитном порядке. Для того чтобы просмотреть значение одной конкретной переменной, можно вместо команды set (в выводе которой нужную переменную еще искать и искать) можно воспользоваться командой

[user]$ echo $name

(правда, в этом случае вы должны знать имя интересующей вас переменной).

Среди переменных, которые вы увидите в выводе команды set, встречаются очень интересные переменные. Обратите, например, внимание на переменную RANDOM. Если вы несколько раз подряд выполните команду

[user]$ echo $RANDOM

вы каждый раз будете получать новое значение. Дело в том, что эта переменная возвращает случайное целое из интервала 0 - 32768.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Старые разновидности Web-дизайна и их критика

Из книги автора

Старые разновидности Web-дизайна и их критика Раньше в Интернете господствовали три разновидности Web-дизайна: текстовый, фреймовый и табличный. Каждый способ имел свои достоинства и недостатки. Но все в той или иной мере проигрывают четвертой разновидности Web-дизайна —


Версии и разновидности Kerberos

Из книги автора

Версии и разновидности Kerberos Наибольшей популярностью пользуется пакет Kerberos, доступный по адресу http://web.mit.edu/kerberоs/www/. На узле MIT размещены исходные тексты Kerberos V5 Release 1.2.1 и двоичные коды, подготовленные для различных операционных систем (версия для Linux отсутствует). Здесь же


Старые разновидности Web-дизайна и их критика

Из книги автора

Старые разновидности Web-дизайна и их критика Раньше в Интернете господствовали три разновидности Web-дизайна: текстовый, фреймовый и табличный. Каждый способ имел свои достоинства и недостатки. Но все в той или иной мере проигрывают четвертой разновидности Web-дизайна —


Настройка параметров ICQ

Из книги автора

Настройка параметров ICQ Щелкнув по кнопке ICQ Menu в левом нижнем углу окна и выбрав пункт Preferences, вы получите доступ к настройкам программы. Установка параметров ICQ – меню PreferencesУспокою вас – настраивать придется не слишком долго. Главное – не забудьте настроить вкладку Check


1.3. Разновидности компьютерных вирусов

Из книги автора

1.3. Разновидности компьютерных вирусов Пришло время ознакомиться c особенностями работы некоторых вирусов – хотя бы для того, чтобы, узнав о начале очередной эпидемии, не спешить отключать кабель, ведущий к модему.Точную классификацию вирусов и других вредоносных


R.13.2 Сопоставление параметров

Из книги автора

R.13.2 Сопоставление параметров При вызове функции с данным именем происходит выбор из всех функций с этим именем, которые находятся в текущей области видимости, и для которых существуют преобразования типа, делающие вызов возможным. Выбирается та функция, которая


Настройка параметров

Из книги автора

Настройка параметров Для перехода в режим настройки параметров программы выполните команду главного меню Сервис ? Параметры. Открывшееся окно состоит из нескольких вкладок, на которых находятся однотипные, сходные по назначению и функциональности параметры настройки


Разновидности носителей для цифровых камер

Из книги автора

Разновидности носителей для цифровых камер Сравнивая достоинства цифровых камер, обращают внимание на тип используемой памяти. Всегда следует знать, насколько память камеры совместима с другими устройствами и не обернется ли дешевизна цифровой камеры дороговизной или


Панель параметров

Из книги автора

Панель параметров Панель параметров имеет разный вид для каждого инструмента. На рис. 8.2 для примера показаны панели для инструментов Eraser (Ластик) и Type (Текст). Рис. 8.2. Панели параметров разных


1.3. Некоторые разновидности сетевых атак

Из книги автора

1.3. Некоторые разновидности сетевых атак Сетевые атаки уже достаточно давно стали фоном современного киберпространства. Похищение конфиденциальных данных, кража паролей доступа, дефейс (взлом, результатом которого становится подмена заглавной страницы сайта) сайтов и


5.4. Редактирование параметров

Из книги автора

5.4. Редактирование параметров Для изменения значения параметра нужно выбрать команду Правка | Изменить, но могу поспорить, что вам больше понравится дважды щелкать на нужном параметре, чем выбирать команду Изменить из меню Правка. В окне редактирования (рис. П4.6) вы


Разновидности ТВ-тюнеров

Из книги автора

Разновидности ТВ-тюнеров Компьютер сегодня стал не только рабочим инструментом, помогающим в повседневной жизни, но и развлекательным центром, позволяющим расслабиться в часы отдыха. Почему бы не добавить ко всем развлекательно-образовательным функциям компьютера еще


Типы ТВ-тюнеров и разновидности интерфейсов

Из книги автора

Типы ТВ-тюнеров и разновидности интерфейсов При выборе ТВ-тюнера для настольного компьютера сегодня приходится сталкиваться с альтернативой между PCI– и USB2.0-интерфейсами, так как все остальные или устарели или, наоборот, слишком новые и пока не распространены. В качестве


Существующие разновидности астрологии

Из книги автора

Существующие разновидности астрологии Одно из определений астрологии гласит: «Астрология — это искусство толкования структурно-символических отношений, существующих между движениями небесных тел и событиями жизни людей (как социальными, так и