
KTNI_Kozlov_otvety / 37
.doc37. Управление операциями КИ. Назначение специальных переменных и их установка.
Установка переменных среды в Bash
У каждой оболочки свой синтаксис установки переменных среды. Обычно в Bash это выполняется в два этапа: присвоение переменной значения и экспорт переменной в среду. Например, чтобы задать по умолчанию текстовый редактор emacs, можно присвоить переменной среды EDITOR значение emac s:
$ EDITOR=emacs
затем экспортировать ее следующей командой.
$ export EDITOR
Обе команды можно объединить в одну.
$ export EDITOR=emacs
При рассмотрении подстановочных символов мы покажем, что на значение переменной среды можно сослаться, указав символ "$" как префикс имени этой переменной в командной строке Bash. Так можно дополнять значение переменной среды. Например, если переменная пути по умолчанию PATH равна
/bin:/usr/bin:/usr/X11R6/bin
к ней можно добавить составляющую /usr / local/bin, введя следующую команду.
$ export PATH=$PATH:/usr/local/bin
В этой команде текущее значение переменной PATH представлено выражением $РАТН. Новое значение переменной следующее:
/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin
Переменная |
Значение |
$0 |
Имя скрипта |
$1 |
Позиционный параметр #1 |
$2-$9 |
Позиционный параметр #2-#9 |
${10} |
Позиционный параметр #10 |
$# |
Кол-во позиционный параметров |
«$*» |
Все параметры (как одно слово) * |
«$@» |
Все параметры (как несколько слов) |
${#var} |
Кол-во слов в переменной var |
${#*} |
Число параметров, переданных скрипту |
${#@} |
Число параметров, переданных скрипту |
$? |
Код, возвращенный работой предыдущей команды |
$$ |
Process ID (PID) скрипта |
$- |
Флаги, переданные скрипту (using set) |
$_ |
Последний аргумент предыдущей команды? |
$! |
Process ID (PID) предыдущей команды, запущенной в фоновом режиме |
$FUNCNAME |
имя текущей функции |
$LINENO |
Номер строки исполняемого сценария. |
$OLDPWD |
прежний рабочий каталог («OLD-Print-Working-Directory») |
$PIPESTATUS |
Код возврата канала (конвейера). Переменная $PIPESTATUS может давать неверные значения при вызове из командной строки. bash$who|grepnobody|sort bash$echo${PIPESTATUS[*]} |
$PPID |
Переменная $PPID хранит PID (идентификатор) родительского процесса. |
$PWD |
рабочий (текущий) каталог |