Linux 反引號 單引號 雙引號簡析

2021-10-02 08:10:22 字數 1063 閱讀 3900

1、 將多個因為空格或者回車等分隔符隔開的字串合在一起,避免被命令列解析分開;

例如 「a b c」 是乙個字串,而不會像 a b c 這樣會被解析成三個單獨的字串。

2、讓一些特殊符號保持原義。

反引號 ` 這個字元所對應的鍵一般位於鍵盤的左上角, 和單引號 』 是有區別的。

反引號括起來的字串會被 shell 解釋為命令列,

在執行時,shell 首先執行該命令列,並以它的標準輸出結果取代整個反引號(包括兩個反引號)部分。

雖然反引號 `cmd` 和 $(cmd) 變數替換的效果是一樣的,但是使用上還是有一些區別的,

具體可戳 《 linux 反引號 `cmd` 和 $(cmd) 的區別 》 了解。

由單引號括起來的所有字元都作為普通字元出現。

即使是特殊字元,用單引號括起來以後,也會失去原有意義,而只作為普通字元解釋。

例如'$a'不會被展開做變更替換, 『cmd』 也不會執行其中的 cmd 命令;

由雙引號括起來的字元,除 $、反引號 (`) 和反斜槓(\)仍保留其特殊功能外,其餘字元均作為普通字元對待:

$  :      用於變數替換

反引號` : 用於命令替換

反斜槓\ : 用於轉義

需要注意的是,反斜槓 \ 的轉義能力是有限的,僅當 \ 後面的字元是下述字元之一時, \ 才是轉義字元:

$`」

\newline換行符(回車)

轉義字元告訴 shell 不要對其後面的那個字元進行特殊處理,只是當作普通字元。

對於 bash 來說,命令的解釋是從左到右的;

因此 先遇到單引號 或者 先遇到雙引號,解釋效果是不一樣的;

舉個例子:

$ a=1

$ echo

"'$a'"

'1'# 單引號失效

$ echo

'"$a"'

"$a"

# 雙引號失效

linux 單引號,雙引號,反引號

目的 為了保護文字不被轉換.除了他本身.就是說除去單引號外,在單引號內的所有文字都是原樣輸出.1.root jszwl161 sp49ep9 echo she is crying help 3.root jszwl161 sp49ep9 echo 4.root jszwl161 sp49ep9 ec...

linux 單引號 雙引號 反引號的區別。

一 單引號和雙引號 單引號和雙引號,都是為了解決中間有空格的問題。因為空格在linux中時作為乙個很典型的分隔符,比如string1 this is astring,這樣執行就會報錯。為了避免這個問題,因此就產生了單引號和雙引號。他們的區別在於,單 引號將剝奪其中的所有字元的特殊含義,而雙引號中的 ...

Shell單引號,雙引號,反引號,反斜槓

shell單引號,雙引號,反引號,反斜槓 shell可以識別4種不同型別的引字符號 單引號字元 雙引號字元 反斜槓字元 反引號字元 1.單引號 grep susan phonebook susan goldberg 403 212 4921 susan topple 212 234 2343 如果我...