Shell中eval的用法示例
更新時間:2015年07月10日 11:35:55 投稿:junjie
這篇文章主要介紹了Shell中eval的用法示例,本文給出多個示例來講解它的使用,需要的朋友可以參考下
功能說明:告知shell取出eval的參數(shù),重新運算求出參數(shù)的內(nèi)容。
語 法:eval [參數(shù)]
補充說明:eval可讀取一連串的參數(shù),然后再依參數(shù)本身的特性來執(zhí)行。
參 數(shù):參數(shù)不限數(shù)目,彼此之間用分號分開。
1.執(zhí)行命令行之前掃描它兩次,再次運算求出參數(shù)的內(nèi)容。
復(fù)制代碼 代碼如下:
[root@localhost blue]# a="ls |more"
[root@localhost blue]# $a #ls
將 | 和 more 看成了參數(shù),而不是將文件按頁顯示
復(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取得最后一個參數(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
另外其他高級用法后作補充!
eval是對Bash Shell命令行處理規(guī)則的靈活應(yīng)用,進而構(gòu)造"智能"命令實現(xiàn)復(fù)雜的功能。
上面提及的命令是eval其中一個很普通的應(yīng)用,它重復(fù)了1次命令行參數(shù)傳遞過程,純粹地執(zhí)行命令的命令。
其實它是bash的難點,是高級bash程序員的必修之技。
相關(guān)文章
詳解linux下利用crontab創(chuàng)建定時任務(wù)
這篇文章主要介紹了linux下利用crontab創(chuàng)建定時任務(wù)的相關(guān)資料,需要的朋友可以參考下2017-04-04
linux執(zhí)行sh腳本報錯:$’\r’: 未找到命令的完美解決方法
本文給大家介紹linux執(zhí)行sh腳本報錯:$’\r’: 未找到命令的完美解決方法,原因分析及解決辦法給大家講解的非常明白,感興趣的朋友跟隨小編一起看看吧2023-02-02

