Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционная система UNIX.doc
Скачиваний:
94
Добавлен:
01.05.2014
Размер:
1.67 Mб
Скачать

9.2.2. Специальные параметры

Когда вы обращаетесь к программе shell, специальный параметр $# содержит число аргументов, с которыми shell программа была вызвана. Это значение может использоваться в любом месте shell программы.

Например, создайте командную строку в файле get.num, сделайте файл исполняемым и запустите команду cat:

$ cat get.num<CR>

echo The number of arguments is: $#

$

Программа просто отобразит число аргументов, с которыми она была вызвана.

Когда вы обращаететсь к shell программе специальный параметр $* содержит строку со всеми аргументами, с которыми программа была вызвана.

9.2.3. Именованные переменные

В shell программе вы можете использовать именованные переменные. Значение именованной переменной вы присваиваете сами следующим образом:

name_variable=value<CR>

Обратите внимание, что ни слева ни справа от знака равенства нет пробелов.

В следующем примере var1 - это имя переменной, а myname - значение строки символов, которое присваивается переменной:

Пример.

var1=myname<CR>

Знак $ используется перед именем переменной в shell программе для ссылки на значение этой переменной. Если взять предыдущий пример, то ссылка $var1 говорит shell, что нужно заменить на значение myname любую встретившуюся строку символов $var1.

Первый символ имени переменной должен быть буквой или символом подчеркивания. Имя переменной может состоять из букв, символов подчеркивания и цифр. Имена переменных не должны совпадать с именами shell команд. Также shell зарезервировано несколько имен переменных, которые вы не должны использовать для своих переменных. Ниже дано краткое описание этих зарезервированных имен переменных: CDPATH - определяет путь поиска команды; HOME - значение, используемое по умолчанию командой cd (собственный справочник); IFS - определяет разделитель (обычно пробел, табуляция и возврат каретки); LOGNAME - ваше регистрационное имя; MAIL - имена файлов, которые содержат электронную почту; PATH - определяет имя пути, используемое shell для нахождения команд; PS1 - определяет первичную подсказку (по умолчанию $); PS2 - определяет вторичную подсказку (по умолчанию >); TERM - идентифицирует тип терминала. Значение этой переменной важно при работе с редактором vi; TERMINFO - идентифицирует справочник, в котором находится информация о вашем терминале; TZ - определяет зону времени (по умолчанию EST5EDT).

Значение этих переменных вы можете определить двумя способами. Первый, вы можете ввести:

echo $variable_name

Система распечатает значение переменной variable_name. Второй способ: вы можете воспользоваться командой env для распечатки значений всех определенных переменных в shell. Для этого введите команду env и система выдаст список всех имен переменных и их значения.

9.2.4. Присвоение значений переменным

Если вы редактируете с помощью редактора vi, то знаете, что можно установить значения переменной TERM вводом следующей командной строки:

TERM=terminal_name<CR>

export TERM

Это простейший способ присвоения значения переменной. Существует еще несколько способов присвоения:

  • использование команды read для присвоения ввода переменной;

  • перенаправление вывода команды в переменную с использованием команды замены со знаками слабого ударения (`...`);

  • присвоение позиционного параметра переменной.

Соседние файлы в предмете Операционные системы