Shell中eval的用法示例
功能說(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)分開。
1.執(zhí)行命令行之前掃描它兩次,再次運(yùn)算求出參數(shù)的內(nèi)容。
[root@localhost blue]# a="ls |more"
[root@localhost blue]# $a #ls
將 | 和 more 看成了參數(shù),而不是將文件按頁(yè)顯示
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取得最后一個(gè)參數(shù)
[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程序員的必修之技。
相關(guān)文章
Linux用戶配置sudo權(quán)限(visudo)的方法
下面小編就為大家?guī)?lái)一篇Linux用戶配置sudo權(quán)限(visudo)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02linux實(shí)現(xiàn)解壓.tar.gz文件的示例詳解
這篇文章主要為大家詳細(xì)介紹了linux實(shí)現(xiàn)解壓.tar.gz文件的相關(guān)知識(shí),文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-08-08Shell腳本中$符號(hào)的嵌套使用方法小結(jié)
在編寫Shell腳本時(shí),通過(guò)嵌套使用$符號(hào),間接獲取變量或表達(dá)式的值的具體方法,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2023-05-05實(shí)現(xiàn)釋放CentOS系統(tǒng)內(nèi)存的Shell腳本分享
這篇文章主要介紹了實(shí)現(xiàn)釋放CentOS系統(tǒng)內(nèi)存的Shell腳本分享,本文對(duì)一些小內(nèi)存的VPS特別有用,需要的朋友可以參考下2014-12-12shell腳本正則匹配文件中的Email并寫入到文件中代碼分享
有時(shí)我們會(huì)處理日志文件,或其他文本文件,并將里面含有的Email讀取出來(lái),可以利用shell處理文件的方法來(lái)讀取2014-04-04Linux shell條件判斷if中的-a到-z的意思【推薦】
這篇文章主要介紹了Linux shell條件判斷if中的-a到-z的意思,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08