変数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。