功能說(shuō)明:告知shell取出eval的參數(shù),重新運(yùn)算求出參數(shù)的內(nèi)容。
語(yǔ) 法:eval [參數(shù)]
補(bǔ)充說(shuō)明:eval可讀取一連串的參數(shù),然后再依參數(shù)本身的特性來(lái)執(zhí)行。
參 數(shù):參數(shù)不限數(shù)目,彼此之間用分號(hào)分開(kāi)。
1.執(zhí)行命令行之前掃描它兩次,再次運(yùn)算求出參數(shù)的內(nèi)容。
復(fù)制代碼 代碼如下:
[root@localhost blue]# a="ls |more"
[root@localhost blue]# $a #ls
將 | 和 more 看成了參數(shù),而不是將文件按頁(yè)顯示
復(fù)制代碼 代碼如下:
ls: cannot access |more: No such file or directory
[root@localhost blue]# eval $a #取出
其參數(shù)并再次執(zhí)行它們
復(fù)制代碼 代碼如下:
1
1.cpp
2
2.cpp
3
3.cpp
[root@localhost test]# a="123"
[root@localhost test]# echo '${'"a"'}'
${a}
[root@localhost test]# eval echo '${'"a"'}' #再次執(zhí)行${a}命令
123
2.eval取得最后一個(gè)參數(shù)
復(fù)制代碼 代碼如下:
[root@localhost blue]# echo 'eval echo \$$#' > last
[root@localhost blue]# cat last
eval echo \$$#
[root@localhost blue]# ./last 1 2 3 4
4
另外其他高級(jí)用法后作補(bǔ)充!
eval是對(duì)Bash Shell命令行處理規(guī)則的靈活應(yīng)用,進(jìn)而構(gòu)造"智能"命令實(shí)現(xiàn)復(fù)雜的功能。
上面提及的命令是eval其中一個(gè)很普通的應(yīng)用,它重復(fù)了1次命令行參數(shù)傳遞過(guò)程,純粹地執(zhí)行命令的命令。
其實(shí)它是bash的難點(diǎn),是高級(jí)bash程序員的必修之技。
您可能感興趣的文章:- Shell腳本中讓進(jìn)程休眠的方法(sleep用法)
- linux shell命令行選項(xiàng)與參數(shù)用法詳解
- Shell函數(shù)的7種用法介紹
- Shell腳本數(shù)組用法小結(jié)
- shell中case的用法學(xué)習(xí)筆記
- Bash Shell中Shift用法分享
- ShellExecute函數(shù)用法的實(shí)例代碼
- shell中冒號(hào)的特殊用法分享
- linux shell命令行參數(shù)用法詳解
- Shell常見(jiàn)用法小記