В ОС UNIX существует понятие процесса. Процесс возникает тогда, когда запускается на выполнение какая-либо команда (расчет).
Например, при наборе на клавиатуре "р " порождается процесс расчета "р". В свою очередь "р" может породить другие процессы. Допустим, что "р" вызывает расчеты "р1" и "р2", которые последовательно порождают соответсвующие процессы.
У каждого процесса есть своя среда - множество доступных ему переменных. Например, до запуска расчета "р" уже существовала среда, в которой уже были определены некоторые переменные (о стандартных переменных речь пойдет несколько позже). Запуск "р" порождает новую среду; уже в ней будут порождены расчеты "р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 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
НА ВСЯКИЙ СЛУЧАЙ заметим, что на передачу значений переменных никакого влияния не оказывает "физическое" взаимное расположение (файлов) расчетов в файловой системе.