天天看點

shell腳本指令學習(一)

$( ) 和 ' '的差別

指令替換:

在bash中,$( ) 和 ' '(反引号)都是用來作指令替換的。

指令替換與變量替換差不多,都是用來重組指令行的,先完成引号裡的指令行,然後将其結果替換出來,再重組成新的指令行。

在操作上,這兩者都能達到相應的效果,BUT:

`` 很容易與 '' 混淆

在多層次的符合替換中,``必須要額外的轉義處理(\反斜線),而$()比較直覺

$()的弊端是,并不是所有的類UNIX系統都支援這種方式,但反引号使肯定支援的

eval

e v a l指令将會首先掃描指令行進行所有的置換,然後再執行該指令。該指令适用于那些一次掃描無法實作其功能的變量。該指令對變量進行兩次掃描。這些需要進行兩 次掃描的變量有時被稱為複雜變量。不過這些變量本身并不複雜。e v a l指令也可以用于回顯簡單變量,不一定是複雜變量。

本文轉自 七十七快 51CTO部落格,原文連結:http://blog.51cto.com/10324228/1837978