如何在Shell中使用eval語句?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
功能說明:告知shell取出eval的參數,重新運算求出參數的內容。
語 法:eval [參數]
補充說明:eval可讀取一連串的參數,然后再依參數本身的特性來執行。
參 數:參數不限數目,彼此之間用分號分開。
1.執行命令行之前掃描它兩次,再次運算求出參數的內容。
代碼如下:
[root@localhost blue]# a="ls |more"
[root@localhost blue]# $a #ls
將 | 和 more 看成了參數,而不是將文件按頁顯示
代碼如下:
ls: cannot access |more: No such file or directory
[root@localhost blue]# eval $a #取出
其參數并再次執行它們
代碼如下:
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"'}' #再次執行${a}命令
123
2.eval取得最后一個參數
代碼如下:
[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命令行處理規則的靈活應用,進而構造"智能"命令實現復雜的功能。
上面提及的命令是eval其中一個很普通的應用,它重復了1次命令行參數傳遞過程,純粹地執行命令的命令。
其實它是bash的難點,是高級bash程序員的必修之技。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。