shell指令碼中單引號和雙引號的區別

時間 2021-08-11 18:10:17

1樓:

在linux作業系統上編寫shell指令碼時候,我們是在變數的前面使用$符號來獲取該變數的值,通常在指令碼中使用”$param”這種帶雙引號的格式,但也有出現使用'$param'這種帶引號的使用的場景,首先大家看一段例子:

複製****如下:

[root@linux

~]#name=tektea

[root@linux

~]#echo

$name

tektea

[root@linux

~]#sayhello=”hello

$name”

[root@linux

~]#echo

$sayhello

hello

tektea

[root@linux

~]#sayhello='hello

$name'

[root@linux

~]#echo

$sayhello

hello

$name

發現了嗎?沒錯!使用了單引號的時候,那

$name將失去原有的變數內容,僅為一般字元的顯示型態而已!這裡必需要特別小心在意!

所以,單引號與雙引號的最大不同在於雙引號仍然可以保有變數的內容,但單引號內僅能是一般字元,而不會有特殊符號,我們也可以這裡理解:'$sayhello'

與“\$sayhello”是相同的。

在shell指令碼開發過程中,針對變數的單引號(‘)和雙引號(“)都是有應用場景的,根據我的經驗總結起來就是:

1.獲取變數值的時候就使用雙引號(“),這是基本用法。

2.如果是在指令碼中要編寫一個新的指令碼,同時這個新的指令碼中還需要包含變數,你就可以選擇使用單引號(‘)了,特別是生成一個臨時的expect指令碼時,單引號(‘)就會經常使用到的。

2樓:竇秀英蒯未

shell指令碼中的單引號和雙引號一樣都是字串的界定符,而不是字元的界定符。單引號用於保持引號內所有字元的字面值,即使引號內的\和回車也不例外,但是字串中不能出現單引號。(注意是所有,只是單引號本身不能夠出現在其中)。

雙引號用於保持引號內所有字元的字面值(回車也不例外),但以下情況除外:

$加變數名可以取變數的值

反引號仍表示命令替換

\$表示$的字面值

\`表示`的字面值

\"表示"的字面值

\\表示\的字面值

除以上情況之外,在其它字元前面的\無特殊含義,只表示字面值。

從上就可以看出單引號和雙引號的區別。下面舉幾個例子:

可見,單引號中完全是保持字串的原型輸出,而雙引號進行了命令替換。

由上可見雖然單引號和雙引號都是字串的限定符,但還是有所區別。

python單引號和雙引號的區別

3樓:笑喘是病得抽

使用上來說沒什麼區別

有點小技巧倒是可以提一下

如:str = 'my name is "***"!'

str = "my name is '***'!"

這樣各自的賦值包含不同的引號

用單引號和雙引號shell的區別

4樓:wx928388亻韋亻言

數字,路徑等可以用,然後輸出最終內容。

雙引號內的命令或者變數寫法’命令或變數’或$(命令或變數)無引號:把內容輸出出來,可能不會鍵含有空格的字串,視為一個整體輸出,如果內容中有命令、變數等,會先把變數、命令解析出來,然後輸出最終內容,如果字串中帶有空格等特殊字元,則不能完整輸出,需要改加雙引號。一般連續的字串單引號:

所見即所得,即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就輸出什麼。

雙引號:把雙引號裡面的內容給輸出出來、命令解析出結果,如果內容中有命令、變數等,會先把,變來那個

shell指令碼變數單引號和雙引號的區別以及

5樓:秋天不回來

a=b c

echo "$a" 結果是b c

echo '$a' 結果是$a

雙引號會保留特殊字元的特殊含義

單引號就是將所有的字元作為普通字元

shell指令碼中 的 單引號和反引號經常混淆,請高手幫我區別它們的功能,謝謝

6樓:小米飛貓

單引號內忽略掉所有特殊字元

反引號能夠將一個命令的標準輸出插在一個命令列中任何位置

7樓:匿名使用者

單引號原樣輸出,你可以記為“單調輸出”,如下原樣輸出 eval echo a 這個字串,很單調吧:

echo 'eval echo a'

反引號執行內容後輸出,可以記為“反譯輸出”,要把引號中的內容反向翻譯一下,如下要執行反綽號中的內容 eval echo a,得到 a,再執行 echo,最終輸出 a:

echo `eval echo a`

8樓:在錦溪古鎮看西甲的墨西哥狼

雙引號和單引號區別還是有區別的,別說差不多(1) 單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的(雙引號可以)

(2) 單引號字串中不能出現單引號(對單引號使用轉義符後也不行)(3) 對於上一條,雙引號可以

(4) 對於命名一個字串,單引號雙引號都可以,甚至可以不加引號再舉個例子吧,比方說預定義了一個變數name=zhangsan雙引號,myname="$name is me"

echo myname 這邊輸出的是: zhangsan is me

單引號,myname='$name is me'

echo myname 這邊輸出的是: $name is me一般來說用雙引號,單引號弱爆了

如何在shell指令碼里單引號裡再引用變數

9樓:水瓶曙光

朋友,你兩個單引號就行啦。注意這兩個單引號不是兩個雙引號哦

a=1echo ''$a''

10樓:攻城獅

單引號不能引用變數的,

只能用雙引號

a=1echo "$a"

shell中對於單引號,雙引號和反引號的處理方式

11樓:小米飛貓

單引號:所有轉移符全部關閉,完整的反應括號中的內容

雙引號:部分轉義符關閉,但某些則保留(如:$ )

反引號:反引號內作為一個系統命令並執行

12樓:匿名使用者

單引號:允許一些特殊字元保留期特有的意義

雙引號:遮蔽掉任何字元的特殊含義

反引號:作為shell命令被執行

雙引號裡的引號用單引號,單引號裡的引號用什麼號

額哈哈 還有一說,用反引號 和 很稀有,沒幾個人知道。一般用反引號,引文內還有引文,就用單引號。引文內還有引文,用單引號,單引號內如果還有引文,就得用反引號,反引號裡面如果還有引文就再沒有辦法了。如 我對他說 老師說 黑白相間中的 白 與 黑 是反義詞。這句話中,你對他說的話用雙引號,引述老師的話,...

字串用單引號還是用雙引號,字串用雙引號(String)而字元用單引號(char),為什麼是這樣???在java中

愚人談娛樂 c 中字串用雙引號 單引號代表一個unicode字元 c 是由c和c 衍生出來的一種安全的 穩定的 簡單的 優雅的物件導向程式語言。它在繼承c和c 強大功能的同時去掉了一些它們的複雜特性 例如沒有巨集以及不允許多重繼承 c 綜合了vb簡單的視覺化操作和c 的高執行效率,以其強大的操作能力...

雙引號 單引號 破折號 省略號的作用和例句

雙引號 引語指行文中引用他人的話。成語 格言 詩詞等,也包括擬聲詞 音譯詞。特定稱謂指具有某些特點的名稱 簡稱 專用術語以及紀念日等。特殊含義指引號中的詞語在其具體的語言環境中產生了新的意思。1 表示引用的部分 2 表示特定的稱謂或著重指出的部分 3 用於具有特殊含義的詞語 4 引號裡面還要用引號時...