簡體   English   中英

$(...)和`...`之間有什么區別

[英]What's the difference between $(…) and `…`

問題很簡單,如標題所述:以下兩個表達式之間的區別是什么?

$(...)
`...`

例如, test1test2這兩個變量是不同的嗎?

test1=$(ls)
test2=`ls`

結果是一樣的,但更新的$()語法更清晰,更容易閱讀。 當試圖築巢時至少加倍。 使用舊語法嵌套並不容易,但使用新方法可以正常工作。

相比:

$ echo $(ls $(pwd))

與:

$ echo `ls \`pwd\``

你需要逃避嵌入的反引號,所以它的類型和讀取都要復雜得多。

根據這個頁面 ,它們如何處理嵌入式雙反斜杠至少有一個細微差別。

你可能想讀man bash

當使用舊式反引號形式的替換時,反斜杠保留其字面含義,除非后跟$,`或者。 第一個不帶反斜杠的反引號會終止命令替換。 使用$(命令)表單時,括號之間的所有字符組成命令; 沒有人特別對待。

這是在聯機幫助頁的“命令替換”部分下。

使用```是歷史語法,POSIX采用了現在標准的`$(...)語法。 2.6.3節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM