這個命令以前沒有用過,在網上查了一下資料,以爲人家寫的很好,因此複製過來了。html
標題:linux命令eval的用法
連接:http://blog.chinaunix.net/uid-21411227-id-1826706.html
標題:linux shell中的eval
連接:http://www.2cto.com/os/201311/255577.html
linux
語法:eval cmdLine
shell
eval會對後面的cmdLine進行兩遍掃描,若是在第一遍掃面後cmdLine是一個普通命令,則執行此命令;若是cmdLine中含有變量的間接引用,則保證簡介引用的語義。ide
舉例以下:ui
set 11 22 33 44spa
若是要輸出最近一個參數,即44,能夠使用以下命令,.net
echo $4unix
可是若是咱們不知道是幾個參數的時候,要輸出最後一個參數,你們可能會想到使用$#來輸出最後一個參數,orm
若是使用命令:htm
echo "\$$#"
則獲得的結果是$4,而不是咱們想要的44.這裏涉及到一個變量簡介引用的問題,咱們的本意是輸出$4,默認狀況下,命令後忽略變量簡介引用的狀況。
這時候,就能夠使用eval命令。
eval echo "\$$#"
獲得結果爲44.