19.7.3. Подоболочки
19.7.3. Подоболочки
При написании сценариев вы можете использовать механизм подоболо-чек. Если вы знакомы с каким-нибудь языком программирования, то должны знать об области распространения действия переменных. Существуют глобальные и локальные переменные. Первые действуют во всей программе, а вторые только внутри определенного блока, например, функции. Если в локальной функции определена переменная с таким же именем, что и одна из глобальных переменных, в этом локальном блоке будет использоваться значение локальной переменной. Далее приведен простейший пример программы, использующей локальные и глобальные переменные на языке Pascal:
Program Test;
Var A : integer; {глобальная переменная}
procedure GetLocal ;
var A: integer; {локальная переменная)
begin
А:= 10;
writeln(A);
end;
begin
А:=7;
writeln(A);
GetLocal(A);
writeln(A);
end;
При запуске программа выведет на экран:
7
10
7
В bash наблюдается нечто подобное. Этот блок называется подоболочкой. Если список команд заключен в фигурные скобки, то он выполняется в текущей оболочке, а если в обыкновенные, то в подоболочке. Итак, рассмотрим выполнение почти аналогичных сценариев:
#!/bin/bash
# Сценарий 1
NUM="one"; (NUM="two"; echo $NUM;);
echo $NUM
#!/bin/bash
# Сценарий 2
NUM="one"; {NUM="two"; echo $NUM;};
echo $NUM
Сценарий 1 выведет на экран следующую информацию:
two
one
а сценарий 2:
two
two
С помощью механизма подоболочек вы можете создавать более гибкие сценарии. С его помощью, например, можно временно изменять рабочий каталог:
pwd; (cd /tmp; pwd;); pwd
Сценарий выведет на экран:
/home/user
/tmp
/home/user
Данный текст является ознакомительным фрагментом.