Değişkenin Bash değişkeni ikamesi ve ardından alt çizgi


12

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:


27

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.


1
Dokümantasyon ve standart, boş bir dizeye ayarlanmış bir değişken için "boş" ifadesini kullanır (ayarlanmamış bir değişkenin aksine). Düzenleme özgürlüğünü aldım.
ilkkachu

8

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_

Değişkenin neyi $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 .
Stéphane Chazelas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.