Shell中eval的用法示例
功能說明:告知shell取出eval的參數(shù),重新運(yùn)算求出參數(shù)的內(nèi)容。
語 法:eval [參數(shù)]
補(bǔ)充說明:eval可讀取一連串的參數(shù),然后再依參數(shù)本身的特性來執(zhí)行。
參 數(shù):參數(shù)不限數(shù)目,彼此之間用分號分開。
1.執(zhí)行命令行之前掃描它兩次,再次運(yùn)算求出參數(shù)的內(nèi)容。
[root@localhost blue]# a="ls |more"
[root@localhost blue]# $a #ls
將 | 和 more 看成了參數(shù),而不是將文件按頁顯示
ls: cannot access |more: No such file or directory
[root@localhost blue]# eval $a #取出
其參數(shù)并再次執(zhí)行它們
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取得最后一個參數(shù)
[root@localhost blue]# echo 'eval echo \$$#' > last
[root@localhost blue]# cat last
eval echo \$$#
[root@localhost blue]# ./last 1 2 3 4
4
另外其他高級用法后作補(bǔ)充!
eval是對Bash Shell命令行處理規(guī)則的靈活應(yīng)用,進(jìn)而構(gòu)造"智能"命令實現(xiàn)復(fù)雜的功能。
上面提及的命令是eval其中一個很普通的應(yīng)用,它重復(fù)了1次命令行參數(shù)傳遞過程,純粹地執(zhí)行命令的命令。
其實它是bash的難點,是高級bash程序員的必修之技。
相關(guān)文章
Linux用戶配置sudo權(quán)限(visudo)的方法
下面小編就為大家?guī)硪黄狶inux用戶配置sudo權(quán)限(visudo)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02實現(xiàn)釋放CentOS系統(tǒng)內(nèi)存的Shell腳本分享
這篇文章主要介紹了實現(xiàn)釋放CentOS系統(tǒng)內(nèi)存的Shell腳本分享,本文對一些小內(nèi)存的VPS特別有用,需要的朋友可以參考下2014-12-12shell腳本正則匹配文件中的Email并寫入到文件中代碼分享
有時我們會處理日志文件,或其他文本文件,并將里面含有的Email讀取出來,可以利用shell處理文件的方法來讀取2014-04-04Linux shell條件判斷if中的-a到-z的意思【推薦】
這篇文章主要介紹了Linux shell條件判斷if中的-a到-z的意思,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08