Книга: Искусство программирования на языке сценариев командной оболочки
Пример 19-1. Область видимости переменных
Пример 19-1. Область видимости переменных
#!/bin/bash
# subshell.sh
echo
outer_variable=Outer
inner_variable=Inner
echo "Дочерний процесс, "inner_variable" = $inner_variable"
echo "Дочерний процесс, "outer" = $outer_variable"
echo
if [ -z "$inner_variable" ]
then
echo "Переменная inner_variable не определена в родительской оболочке"
else
echo "Переменная inner_variable определена в родительской оболочке"
fi
echo "Родительский процесс, "inner_variable" = $inner_variable"
# Переменная $inner_variable не будет определена
# потому, что переменные, определенные в дочернем процессе,
# ведут себя как "локальные переменные".
echo
exit 0
См. также Пример 31-1.
+
Смена текущего каталога в дочернем процессе (подоболочке) не влечет за собой смену текущего каталога в родительской оболочке.