Variabel BUILDNUMBERdiatur ke nilai 230. Saya berharap 230_akan dicetak untuk perintah echo $BUILDNUMBER_tetapi output kosong seperti yang ditunjukkan di bawah ini.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Variabel BUILDNUMBERdiatur ke nilai 230. Saya berharap 230_akan dicetak untuk perintah echo $BUILDNUMBER_tetapi output kosong seperti yang ditunjukkan di bawah ini.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Jawaban:
Perintah echo $BUILDNUMBER_akan mencetak nilai variabel $BUILDNUMBER_yang tidak disetel (garis bawah adalah karakter yang valid untuk nama variabel seperti yang secara eksplisit dicatat oleh Jeff Schaller)
Anda hanya perlu menerapkan kawat gigi (kurung keriting) di sekitar nama variabel atau menggunakan alat yang paling kaku printf:
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
PS: Selalu kutip variabel Anda.
Seperti yang sudah dijelaskan George Vassiliou , itu karena Anda yang mencetak variabel, $BUILDNUMBER_bukan $BUILDNUMBER. Cara terbaik untuk mendapatkan apa yang Anda inginkan adalah menggunakan ${BUILDNUMBER}_seperti yang dijelaskan George. Berikut ini beberapa opsi:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFSberlaku, jadi echo $BUILDNUMBER"_"masih salah. Dari ketiganya, hanya printf '%s_\n' "$BUILDNUMBER"benar jika kita tidak tahu apa $BUILDNUMBERatau $IFSpegang.