1. 程式人生 > >linux shell中的 eval , ` ` , $() 命令

linux shell中的 eval , ` ` , $() 命令

1.倒引號與 $()的用法

倒引號括起來的是一條命令,shell應該先執行該命令,然後將輸出結果立刻代換到當前命令行中,命令代換也可以用$()
測試用例
這裡寫圖片描述
執行結果
這裡寫圖片描述
上述測試用例都是先執行倒引號與$()裡面的命令,然後再執行echo命令

2.“(倒引號)與$()用法的區別

測試例子
這裡寫圖片描述
執行結果
這裡寫圖片描述
通過上述的測試,我們可以發現:
(1).反引號齊本身就對\進行了轉義,保留了齊本身意思,如果我們想在反引號中起到\的特殊意義,我們必須使用2個\來進行表示。所以我們可以簡單的想象成反引號中 、\\ = \
(2). $()中則不需要考慮\的問題,與我們平常使用的一樣 \ = \

3.eval命令的使用

(1).eval命令將會首先掃描命令列進行所有的替換,然後再執行命令。該命令使用於那些一次掃描無法實現其功能的變數。該命令對變數進行兩次掃描。這些需要進行兩次掃描的變數有時候被稱為複雜變數。
(2).eval也可以用於回顯簡單變數,不一定是複雜變數。
這裡寫圖片描述

這裡寫圖片描述
(3).兩次掃描
這裡寫圖片描述

這裡寫圖片描述
(4).獲得最後一個引數
這裡寫圖片描述

這裡寫圖片描述