変数BUILDNUMBER
は値230に設定されています。以下のように230_
、コマンドに対してecho $BUILDNUMBER_
出力されることを期待していますが、出力は空です。
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
変数BUILDNUMBER
は値230に設定されています。以下のように230_
、コマンドに対してecho $BUILDNUMBER_
出力されることを期待していますが、出力は空です。
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
回答:
コマンドecho $BUILDNUMBER_
は、$BUILDNUMBER_
設定されていない変数の値を出力します(下線は、Jeff Schallerによって明示的に示されている変数名の有効な文字です)
変数名を中括弧(中括弧)で囲むか、最も厳密なprintf
ツールを使用する必要があります。
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
PS:常に変数を引用してください。
George Vassiliouが既に説明したように、それはあなたがの$BUILDNUMBER_
代わりに変数を出力しているから$BUILDNUMBER
です。欲しいものを手に入れる最良の方法は${BUILDNUMBER}_
、ジョージが説明したように使うことです。さらにいくつかのオプションがあります:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFS
が保持されているかはわかりませんecho $BUILDNUMBER"_"
。3つのうち、printf '%s_\n' "$BUILDNUMBER"
何を保持している$BUILDNUMBER
かわからない場合にのみ正しいです$IFS
。