Bash
bash 中的“eval”命令是什麼?
你可以用這個
eval
命令做什麼?為什麼有用?它是bash中的某種內置函式嗎?它沒有man
頁面。。
eval
是 POSIX 的一部分。它是一個可以是內置外殼的介面。它在“POSIX程序員手冊”中描述:http ://www.unix.com/man-page/posix/1posix/eval/
eval - construct command by concatenating arguments
它將接受一個參數並構造一個命令,該命令將由 shell 執行。這是手冊頁的範例:
1) foo=10 x=foo 2) y='$'$x 3) echo $y 4) $foo 5) eval y='$'$x 6) echo $y 7) 10
- 在第一行中,您
$foo
使用 value'10'
和$x
value定義'foo'
。- 現在定義
$y
,它由字元串組成'$foo'
。美元符號必須用'$'
.- 要檢查結果,
echo $y
.- 結果將是字元串
'$foo'
- 現在我們用 重複分配
eval
。它將首先評估$x
為 string'foo'
。現在我們有了y=$foo
將被評估為的語句y=10
。- 現在的結果
echo $y
是 value'10'
。這是許多語言中的常用功能,例如 Perl 和 JavaScript。查看 perldoc eval 以獲得更多範例: http: //perldoc.perl.org/functions/eval.html