功能說明:告知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 #取出其參數并再次執行它們復制代碼代碼如下:11.cpp22.cpp33.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 lasteval echo /$$#[root@localhost blue]# ./last 1 2 3 44另外其他高級用法后作補充!eval是對Bash Shell命令行處理規則的靈活應用,進而構造"智能"命令實現復雜的功能。上面提及的命令是eval其中一個很普通的應用,它重復了1次命令行參數傳遞過程,純粹地執行命令的命令。其實它是bash的難點,是高級bash程序員的必修之技。新聞熱點
疑難解答