Дать скрипту время для выполнения, если превышено, остановить его

Да, b не является переменной среды.
Но: Да, b существует в подоболочке, созданной с помощью подстановки команд:

$ b=11; c="$(echo $b)"; echo "$c"          ### b exists in subshell.
11
$ b=11; c="$(b=33; echo $b)"; echo "$c"    ### $b is not replaced before
33                                         ### the subshell is executed.

То, что не получает переменные, является «полным дочерним процессом» :

$ b=11; bash -c 'echo "<$b>"'              ### b does not exist.
<>
$ b=11 bash -c 'echo "<$b>"'               ### environment b.
<11> 

Кроме что процесс, конечно, может получать переменные в среде.


Последняя строка в Подоболочка Wooledge :

В подоболочке видна обычная переменная оболочки a; но поскольку он не экспортируется, полный дочерний процесс его не видит.

5
12.10.2015, 21:54
0 ответов

Теги

Похожие вопросы