shell指令碼中單引號和雙引號

2021-07-26 01:26:36 字數 1161 閱讀 6705



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

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

反引號位 (`) 位於鍵盤的tab鍵的上方、1鍵的左方。注意與單引號(')位於enter鍵的左方的區別。

在linux中起著命令替換的作用。命令替換是指shell能夠將乙個命令的標準輸出插在乙個命令列中任何位置。

如下,shell會執行反引號中的date命令,把結果插入到echo命令顯示的內容中。

[root@localhost sh]# echo the date is `date`

the date is 2023年 03月 14日 星期一 21:15:43 cst

單引號、雙引號用於把整體命令傳給摸個命令,下面兩者都對,唯一區別是否忽略特殊字元,詳解看最後一條。

root@localhost sh]# str=awk 'begin '

root@localhost sh]# str=awk 『'begin "

單引號、雙引號用於使用者把帶有空格的字串賦值給變數事的分界符。

[root@localhost sh]# str="today is monday"

[root@localhost sh]# echo $str

today is monday

如果沒有單引號或雙引號,shell會把空格後的字串解釋為命令。

[root@localhost sh]# str=today is monday

bash: is: command not found

單引號和雙引號的區別。單引號告訴shell忽略所有特殊字元,而雙引號忽略大多數,但不包括$、\、`。

[root@localhost sh]# testvalue=100

[root@localhost sh]# echo 'the testvalue is $testvalue'

the testvalue is $testvalue

[root@localhost sh]# echo "the testvalue is $testvalue"

the testvalue is 100



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

shell指令碼中的單引號和雙引號一樣都是字串的界定符,而不是字元的界定符。單引號用於保持引號內所有字元的字面值,即使引號內的 和回車也不例外,但是字串中不能出現單引號。注意是所有,只是單引號本身不能夠出現在其中 雙引號用於保持引號內所有字元的字面值 回車也不例外 但以下情況除外 從上就可以看出單引...

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

前面我們還留下乙個疑問,定義變數時,變數的值可以由單引號 包圍,也可以由雙引號 包圍,它們到底有什麼區別呢?不妨以下面的 為例來說明 bin bash url website1 c語言中文網 website2 c語言中文網 echo website1 echo website2 執行結果 c語言中文...

shell中單引號 雙引號 反引號

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