${VAR:=預設值}和${VAR:-預設值} 區別

滴滴滴發表於2024-03-25

當然可以,以下是${VAR:=預設值}${VAR:-預設值}在實際使用中的例子:

例子 1:使用${VAR:=預設值}

bash複製程式碼
#!/bin/bash
# 假設VAR變數尚未設定
echo "原始VAR的值: $VAR" # 輸出:原始VAR的值: (空行)
# 使用${VAR:=預設值}
echo "VAR的值(若未設定則為預設值): ${VAR:=Hello}" # 輸出:VAR的值(若未設定則為預設值): Hello
# 注意:此時VAR的值已經被設定為"Hello"
echo "現在VAR的值: $VAR" # 輸出:現在VAR的值: Hello

在這個例子中,${VAR:=Hello}不僅返回了"Hello",而且將VAR的值設定為了"Hello"。

例子 2:使用${VAR:-預設值}

bash複製程式碼
#!/bin/bash
# 假設VAR變數尚未設定
echo "原始VAR的值: $VAR" # 輸出:原始VAR的值: (空行)
# 使用${VAR:-預設值}
echo "VAR的值(若未設定則為預設值): ${VAR:-Hello}" # 輸出:VAR的值(若未設定則為預設值): Hello
# 注意:此時VAR的值仍然是未設定的
echo "現在VAR的值: $VAR" # 輸出:現在VAR的值: (空行)

在這個例子中,${VAR:-Hello}返回了"Hello",但是VAR的值仍然未設定。

這兩個例子清晰地展示了${VAR:=預設值}${VAR:-預設值}之間的區別。第一個語法不僅返回預設值,還設定變數的值;而第二個語法只返回預設值,不改變變數的值。根據你的需求,你可以選擇使用哪一個。如果你想要檢查變數是否設定,並且如果未設定則使用預設值,但不希望改變變數的值,那麼應該使用${VAR:-預設值}。如果你想要在變數未設定時使用預設值,並且希望這個預設值成為變數的新值,那麼應該使用${VAR:=預設值}

相關文章