Bash 雙引號與單引號的區別

在 Linux Shell 中,單引號與雙引號對變數處理有顯著差異。本文透過簡單的腳本範例,展示雙引號會解析變數內容,而單引號則會保留字串原貌。這項基礎細節對於撰寫正確的 Dockerfile 或自動化指令碼至關重要。

發佈
閱讀
約 1 分鐘
字數
243
⚠️ 舊文提醒:本文發佈於約 4 年前,部分內容或指令可能已過時,請斟酌參考。

最近在 k8s 上解構別人的 Dockerfile,想要把一些變數參數化,不小心忽略了這個小細節,結果淹沒在巨大的指令海裡
經過一番追尋之後,才終於發現了這個小細節

下面我寫了一個簡單的測試,可以很明確地發現單引號與雙引號的差別

test.sh

1
2
3
4
v="100"

echo 'v=$v'
echo "v=$v"

output

1
2
3
$ sh test.sh
v=$v
v=100

希望這篇文章可以解救被同樣問題困擾的冤魂 🤣

bash 文件可以參考
https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html

也許你也會想看看

輸入關鍵字開始搜尋 · ↑↓ 選擇 · Enter 開啟