Bash

bash 中的“eval”命令是什麼?

  • June 25, 2021

你可以用這個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
  1. 在第一行中,您$foo使用 value'10'$xvalue定義'foo'
  2. 現在定義$y,它由字元串組成'$foo'。美元符號必須用'$'.
  3. 要檢查結果,echo $y.
  4. 結果將是字元串'$foo'
  5. 現在我們用 重複分配eval。它將首先評估$x為 string 'foo'。現在我們有了y=$foo將被評估為的語句y=10
  6. 現在的結果echo $y是 value '10'

這是許多語言中的常用功能,例如 Perl 和 JavaScript。查看 perldoc eval 以獲得更多範例: http: //perldoc.perl.org/functions/eval.html

引用自:https://unix.stackexchange.com/questions/23111