Bash 變數替換變數後接底線

Bash 變數替換變數後接底線

該變數設定BUILDNUMBER為值 230 。230_echo $BUILDNUMBER_

# echo $BUILDNUMBER_

# echo $BUILDNUMBER
230

答案1

該命令echo $BUILDNUMBER_將列印未設定的變數值$BUILDNUMBER_(下劃線是 Jeff Schaller 明確指出的變數名稱的有效字元)

您只需在變數名稱周圍套用大括號(大括號)或使用最嚴格的printf工具:

echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"

PS:始終引用您的變數。

答案2

正如喬治·瓦西利烏已經解釋了,那是因為您列印的是變數$BUILDNUMBER_而不是$BUILDNUMBER.獲得你想要的東西的最好方法就是使用,${BUILDNUMBER}_就像喬治解釋的那樣。以下是更多選項:

$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_

相關內容