[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]

Руководство пользователя: Операционная система и устройства


Оболочка Bourne

Оболочка Bourne - это интерактивный интерпретатор команд и командный язык программирования. Оболочка Bourne запускается командой bsh.

Оболочку Bourne можно запустить либо как начальную оболочку, либо как подоболочку начальной оболочки. Первый вариант запуска выполняется только командой login. Для этого предназначен специальный формат команды bsh: -bsh. Если оболочка вызывается со знаком дефис (-), то сначала она считывает и выполняет команды из системного файла /etc/profile и вашего профайла $HOME/.profile, если последний существует. Файл /etc/profile задает переменные, необходимые всем пользователям. После этого оболочка будет готова к обработке команд, которые вы введете обычным образом.

Если в команде запуска оболочки Bourne указан параметр Файл [Опции], то оболочка запустит файл сценария, указанный в параметре Файл, с учетом опций. Файл сценария должен быть доступен для чтения; все значения setuid и setgid игнорируются. Затем будут считаны команды. Файл сценария не следует указывать вместе с флагами -c или -s.

Среда оболочки Bourne

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

Оболочка передает дочерним процессам переменные в виде аргументов встроенной команды export. Эта команда помещает указанные переменные в среду как самой оболочки, так и всех ее будущих дочерних процессов.

Ключевые слова - это пары "переменная-значение", которые обычно указываются в виде оператора присвоения перед именем процедуры в командной строке (возможны и другие варианты - см., например, флаг команды set). Переменные, задаваемые ключевыми словами, помещаются в среду вызываемой процедуры.

Например, рассмотрим простую процедуру, выдающую значения двух переменных (процедура хранится в командном файле key_command):

# key_command
echo $a $b

В командной строке будет показан следующий вывод:

Ввод                               Вывод
a=key1   b=key2  key_command       key1 key2
a=tom    b=john  key_command       tom john

Ключевые слова процедуры не учитываются в счетчике параметров, хранящемся в $#.

Процедура может обращаться к значениям любых переменных своей среды. Но если она изменит любое из этих значений, то изменение не отразится на среде оболочки. Переменные являются локальными по отношению к рассматриваемой процедуре. Если вы хотите передать изменения в среде дочерним процессам процедуры, экспортируйте новые значения в этой процедуре.

Для просмотра списка переменных, которые можно экспортировать из текущей оболочки, введите команду:

export

Нажмите Enter.

Для просмотра списка переменных, доступных только для чтения в текущей оболочке, введите команду:

readonly

Нажмите Enter.

Для просмотра списка пар "переменная-значение" в текущей среде введите команду:

env

Нажмите Enter.

Дополнительная информация о пользовательских средах приведена в разделе Файл /etc/environment


[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]