Организация UNIX-систем и ОС Solaris

Предопределенные переменные


Предопределенные переменные содержатся в среде окружения командного процессора независимо от установок, которые может сделать пользователь в стартовых скриптах. Имена предопределенных переменных среды окружения во всех командных процессорах, кроме csh (и, в некоторых случаях, tcsh), пишутся символами верхнего регистра: PATH, USER, TERM, PS1, PS2.

В именах переменных среды окружения используются буквы латинского алфавита. пользовательские, добавленные по ходу работы переменные в скриптах принято называть именами из символов нижнего регистра для того, чтобы отличать переменные, введенные разработчиком системы, от тех, что вводит пользователь или требует прикладная программа.

В любых командных процессорах обязательно заранее определены переменные, указанные в таблице 10.5.

Таблица 10.5. Предопределенные переменные

ПеременнаяСмысл
HOMEдомашний каталог пользователя
SHELLтекущий shell
PS1вид приглашения shell'a
PS2вид приглашения "продолжение команды"
TERMтип терминала пользователя
USER или LOGNAMEимя пользователя
PATHсписок каталогов, в которых надо искать исполняемый файл, когда пользователь запускает программу, указывая только ее имя, но не путь. Каталоги разделяются двоеточиями

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

set

Любой скрипт может быть вызван с аргументами, которые в скрипте называются позиционными параметрами. К аргументам с первого по девятый следует обращаться как к $1..$9. Значение $0 - это имя самого скрипта, по которому его вызвали. Один и тот же скрипт может быть вызван с разными именами, например, если с ним установлены символические связи (symbolic links).

Команда shift n (n - положительное или отрицательное смещение) позволяет двигать "окошко" $1..$9 по всему массиву аргументов скрипта вперед и назад, если аргуменов больше девяти. Shift без параметров эквивалентен shift 1. В csh shift умеет сдвигать "окно" только на одну позицию вперед.

Кроме вышеописанных переменных обычно определены следующие:

ПеременнаяСмысл
$номер процесса текущего shell'a
*все позиционные параметры
_последняя вызванная команда
1,2,..9один позиционный параметр
?число позиционных параметров



Содержание раздела