2012-01-20 52 views
44

我看到在bash腳本兩種不同的形式,這似乎做同樣的:

`some command` 

$(some command) 

是什麼兩者之間的區別,以及何時應該使用他們每個人?

回答

44

沒有語義上的差異。反引號語法是較老的和較弱的版本。參見man bash,「命令替換」部分。

如果您的shell支持$()語法,請優先選擇它,因爲它可以嵌套。

+0

我看到反引號也可以嵌套。例如:'\''echo''foo \\''' –

+10

@MishaMoroshko:'''echo''foo \'''這樣的表達式(與'$(echo $(foo))'相對)因爲每個''''可以打開或關閉,所以一般都不會工作,因爲它固有的含糊不清。由於運氣或特殊功能,它可能適用於特殊情況。 – thiton

+1

存在語義差異:反引號語法以不同且不明顯的方式處理反斜線。請參閱:http://mywiki.wooledge.org/BashFAQ/082 – benkc

相關問題