下面是一個簡單的bash腳本:奇怪的外殼行爲
a="asd"
b="qf"
echo "$a.$b"
echo "$a_$b"
它的輸出是:
asd.qf
qf
爲什麼第二行是不是 「asd_qf
」,而是 「qf
」?
下面是一個簡單的bash腳本:奇怪的外殼行爲
a="asd"
b="qf"
echo "$a.$b"
echo "$a_$b"
它的輸出是:
asd.qf
qf
爲什麼第二行是不是 「asd_qf
」,而是 「qf
」?
因爲您尚未定義名爲a_
的變量。對於第二打印工作,使用方法:
echo "${a}_$b"
你的第二個echo
顯示變量$a_
的值未設置。
使用echo "${a}_$b"
shell有什麼可以在變量名去規則,$a_
被解釋爲命名a_
變量(沒有與該名稱,因此它的值是空的沒有變化)。
您可以隨時添加大括號以明確。在這種情況下,${a}_$b
將明確標識變量名稱,結果將成爲您期望的結果。