Değişken BUILDNUMBER230 değerine ayarlanır. 230_Komut için yazdırılmayı bekliyorum , echo $BUILDNUMBER_ancak çıktı aşağıda gösterildiği gibi boş.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Değişken BUILDNUMBER230 değerine ayarlanır. 230_Komut için yazdırılmayı bekliyorum , echo $BUILDNUMBER_ancak çıktı aşağıda gösterildiği gibi boş.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Yanıtlar:
Komut ayarlanmamış echo $BUILDNUMBER_değişkenin değerini yazdıracaktır $BUILDNUMBER_(alt çizgi Jeff Schaller tarafından açıkça belirtildiği gibi bir değişken adı için geçerli bir karakterdir)
Değişken adının etrafına parantez (kıvırcık parantez) uygulamanız veya en sert printfaracı kullanmanız yeterlidir :
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
Not: Her zaman değişkenlerinizi belirtin.
George Vassiliou'nun daha önce açıkladığı gibi , $BUILDNUMBER_bunun yerine değişkeni yazdırıyorsunuz $BUILDNUMBER. İstediğinizi elde etmenin en iyi yolu ${BUILDNUMBER}_George'un açıkladığı gibi kullanmaktır . İşte birkaç seçenek daha:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFStuttuğunu biliyoruz, ama neyin tuttuğunu bilmiyoruz , bu yüzden echo $BUILDNUMBER"_"hala yanlış. Üçünden, sadece printf '%s_\n' "$BUILDNUMBER"ne olduğunu bilmediğimiz $BUILDNUMBERveya $IFStuttuğumuzda doğrudur .