[英]What's the difference between $(…) and `…`
問題很簡單,如標題所述:以下兩個表達式之間的區別是什么?
$(...)
`...`
例如, test1
和test2
這兩個變量是不同的嗎?
test1=$(ls)
test2=`ls`
結果是一樣的,但更新的$()語法更清晰,更容易閱讀。 當試圖築巢時至少加倍。 使用舊語法嵌套並不容易,但使用新方法可以正常工作。
相比:
$ echo $(ls $(pwd))
與:
$ echo `ls \`pwd\``
你需要逃避嵌入的反引號,所以它的類型和讀取都要復雜得多。
根據這個頁面 ,它們如何處理嵌入式雙反斜杠至少有一個細微差別。
你可能想讀man bash
:
當使用舊式反引號形式的替換時,反斜杠保留其字面含義,除非后跟$,`或者。 第一個不帶反斜杠的反引號會終止命令替換。 使用$(命令)表單時,括號之間的所有字符組成命令; 沒有人特別對待。
這是在聯機幫助頁的“命令替換”部分下。
使用```是歷史語法,POSIX采用了現在標准的`$(...)語法。 見2.6.3節
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.