$( ) 和 ' '的差別
指令替換:
在bash中,$( ) 和 ' '(反引号)都是用來作指令替換的。
指令替換與變量替換差不多,都是用來重組指令行的,先完成引号裡的指令行,然後将其結果替換出來,再重組成新的指令行。
在操作上,這兩者都能達到相應的效果,BUT:
`` 很容易與 '' 混淆
在多層次的符合替換中,``必須要額外的轉義處理(\反斜線),而$()比較直覺
$()的弊端是,并不是所有的類UNIX系統都支援這種方式,但反引号使肯定支援的
eval
e v a l指令将會首先掃描指令行進行所有的置換,然後再執行該指令。該指令适用于那些一次掃描無法實作其功能的變量。該指令對變量進行兩次掃描。這些需要進行兩 次掃描的變量有時被稱為複雜變量。不過這些變量本身并不複雜。e v a l指令也可以用于回顯簡單變量,不一定是複雜變量。
本文轉自 七十七快 51CTO部落格,原文連結:http://blog.51cto.com/10324228/1837978