СРЕДА SHELL (ПЕРЕМЕННЫЕ И ПАРАМЕТРЫ) - часть 6
У каждого процесса есть своя среда - множество доступных ему переменных. Например, до запуска расчета "р" уже существовала среда, в которой уже были определены некоторые переменные (о стандартных переменных речь пойдет несколько позже). Запуск "р" порождает новую среду; уже в ней будут порождены расчеты "р1" и "р2".
Переменные локальны в рамках процесса, в котором они объявлены, т.е. где им присвоены значения (описание переменных отсутствует - они все одного типа). Для того, чтобы они были доступны и другим порождаемым процессам, надо передать их явным образом. Для этого используется встроенная команда "export".
Пример.
Пусть расчет (командный файл) "p", имеющий вид:
# расчет p echo Расчет p varX=0 varY=1 echo varX=$varX varY=$varY export varY p1 # вызов расчета p1 p2 # вызов расчета p2 echo Снова расчет p: varX=$varX varY=$varY
вызывает командные файлы "p1" и "p2", имеющие вид:
# расчет p1 echo Расчет p1 echo varX=$varX varY=$varY varX=a varY=b echo varX=$varX varY=$varY export varX # расчет p2 echo Расчет p2 echo varX=$varX varY=$varY varX=A varY=B echo varX=$varX varY=$varY export varY
На экран будут выданы следующая информация:
Расчет p varX=0 varY=1 Расчет p1 varX= varY=1 varX=a varY=b Расчет p2 varX= varY=1 varX=A varY=B Снова расчет p: varX=0 varY=1
Из примера видно, что значения переменных экспортируются только в вызываемые расчеты (и не передаются "вверх" и "вбок"). Экспортировать переменные можно и командой "set" с флагом "-a".
НА ВСЯКИЙ СЛУЧАЙ заметим, что на передачу значений переменных никакого влияния не оказывает "физическое" взаимное расположение (файлов) расчетов в файловой системе. |
4.5. Параметры
В командный файл могут быть переданы параметры. В shell используются позиционные параметры (т.е. существенна очередность их следования). В командном файле соответствующие параметрам переменные (аналогично shell-переменным) начинаются с символа "$", а далее следует одна из цифр от 0 до 9: