Dizede bash değişkeninden sonra boşluk nasıl önlenir?


18

Renk için bir değişkenim var. Dize içinde değerlendirerek, dizeleri renk ayarlamak için kullanın. Ancak, adından sonra boşluk eklemeniz gerekir (böylece ad metnin bir bölümünü içermez). Bu bazen kötü görünüyor.

Bu alanı kullanmaktan (yazdırmaktan) nasıl kaçınabilirim?

Örnek (Diyelim ki Red=1ve NC=2):

echo -e "$Red Note: blabla$NC".

Çıktı:

1 Note: blabla2.

Beklenen çıktı:

1Note: blabla2.

Yanıtlar:



4

Kullanma alışkanlığına girmeniz gereken şey printf:

printf '%sNote: blabla%s\n' "$Red" "$NC"

Her biri %sbir değişkeni değiştirir. Ve -eprintf, \ n, \ t, vb. Ters eğik çizgi değerlerini taşınabilir bir şekilde kabul ettiği için gerekli değildir.

Bunun echo -ediğer kabuklar için taşınabilir olmadığını unutmayın .

Diğer seçenekler:

Çıktılarını birleştiren iki komut kullanabilirsiniz:

echo -ne "$Red"; echo -e "Note: blabla$NC"

Basit dize birleştirme kullanabilirsiniz:

echo -e "$Red""Note: blabla$NC"

Veya { }ad metni karışıklıklarından kaçınmak için kullanabilirsiniz :

echo -e "${Red}Note: blabla$NC"
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.