2010-02-07 61 views
3

我是不是運行這兩個命令,它們都似乎做同樣的事情,這是真的還是有什麼事情發生我沒有看到?

這兩個似乎做同樣的事情:

result=$(ls -l) 
result=`ls -l` 

回答

4
+1

呵呵好了,看起來我是明智的男子氣概使用T = $( ls -l) 謝謝你們! – Mint 2010-02-07 04:41:19

+2

另一個參考:http://mywiki.wooledge.org/BashFAQ/082 – 2010-02-07 07:56:37

+2

很好的鏈接,但是當我說$()是一個新的語法時,我質疑他們對「新」的定義。它比反引號更新,但它已經存在很長時間了。 – 2010-02-07 17:46:07

1

bash手冊頁在Command Change下指出以下內容。接着當由$,`,或

當使用 取代舊式反引號形式,反斜線 保留其字面含義,除了 。 第一個反引號前面沒有前面的 反斜槓終止命令 子置換。當使用$(command)形式時,括號之間的所有字符 組成 命令;使用 命令時,沒有人專門處理。

命令替換可以嵌套。 要使用反向引用的 表單嵌套​​時,請使用 反斜槓將內部反引號排除。

在線的sh手冊頁的副本: