Как освободить экстенты физического тома? lvm, encrypted

Фактически eval анализирует аргументы, раскрывает переменные и т. Д., А затем результирующая строка выполняется как обычно.

Так, например:

$ i=ls
$ eval $i

eval здесь заменит $ i на ls и , затем запустит ] ls как обычно (так что для запуска процесса ls будет fork () / exec () ).

Если, однако, вы сделали

$ i="echo hello"
$ eval $i
hello

, то новый процесс не создается, потому что echo hello выполняется как встроенная функция.

Мы видим, что оболочка не создается путем установки переменных:

$ a=0
$ i="a=100"
$ eval $i
$ echo $a
100

$ a может быть установлено в 100, только если это было сделано в текущей оболочке.

Итак, eval на самом деле является просто синтаксическим анализатором и выполняется в текущей оболочке; результаты этой строки могут создавать или не создавать новый процесс, как и любая другая команда.

1
21.07.2015, 14:05
0 ответов

Теги

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