Shell 雙引號和單引號的區別

2021-10-24 05:39:22 字數 1122 閱讀 9481

shell在使用的過程中,經常會使雙引號或者單引號將字串括起來,也可以不使用引號來定義字串變數。示例如下:

str1=

"teststring"

#雙引號

str2=

'teststring'

#單引號

str3=teststring #無引號

因此字串變數的定義有三種方式,分別是雙引號、單引號和無引號。這三種方式有什麼區別呢?單引號和雙引號又有什麼區別呢?

單引號定義字串所見即所得,即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就會輸出什麼。單引號是全引用,被單引號括起的內容不管是常量還是變數都不會發生替換。

var=dablelv

echo

'$var'

輸出:

$var
雙引號引用的內容,所見非所得。如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容。雙引號是部分引用,被雙引號括起的內容常量還是常量,變數則會發生替換,替換成變數內容。

var=dablelv

echo

"$var"

輸出:

dablelv
不使用引號定義字串時,字串不能包含空白字元(如space或tab),需要該加引號,一般連續的字串,數字,路徑等可以不加引號。如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容。

str1=

"test string"

str2=

'test string'

str3=test string

echo

$str1

echo

$str2

echo

$str3

輸出:

test string

test string

可見,字串中包含有空格時不實用引號括起來,將無法正常輸出。

5.建議

字串常量使用單引號括起來,如果字串中含有變數、命令等使用雙引號括起來,不建議不加引號。

Shell中單引號和雙引號區別

1.在 home atguigu bin建立乙個test.s 件 mkluo hadoop102 bin vim test.sh 在檔案中新增如下內容 bin bash do date 1 echo do date echo do date echo do date echo do date ech...

Shell中單引號和雙引號區別

1 在 home coder bin建立乙個test.s 件 coder hadoop102 bin vim test.sh 在檔案中新增如下內容 bin bash do date 1 echo do date echo do date echo do date echo do date echo ...

shell中單引號 雙引號的區別

hard quote 單引號,關閉所有的meta 什麼是meta,自己查吧 soft quote 雙引號,關閉大部分的meta,但是某些保留,例如 這裡也提一下escape 反斜槓,它只會關閉緊跟escape之後的字元。參考cu上經典的十三問,hard quote關閉shell的meta,而soft...