Bagaimana cara menghindari spasi setelah variabel bash dalam string?

17

Saya punya variabel untuk warna. Saya menggunakannya untuk mengatur warna ke string, dengan mengevaluasinya di dalam string. Namun, saya perlu memasukkan spasi setelah nama (sehingga nama tersebut tidak mengandung bagian dari teks). Ini terkadang terlihat buruk.

Bagaimana saya bisa menghindari menggunakan (mencetak) ruang ini?

Contoh (Katakan itu Red=1dan NC=2):

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

Keluaran:

1 Note: blabla2.

Output yang diharapkan:

1Note: blabla2.
MatthewRock
sumber

Jawaban:

4

Apa yang harus Anda biasakan menggunakan adalah printf:

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

Di mana masing-masing %smengganti variabel. Dan -eitu tidak diperlukan karena printf menerima nilai backslash \ n, \ t, dll dengan cara yang portabel.

Ingatlah bahwa echo -eini tidak mudah dibawa ke cangkang lain.

Pilihan lain:

Anda bisa menggunakan dua perintah yang menggabungkan output mereka:

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

Anda dapat menggunakan penggabungan string sederhana:

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

Atau Anda dapat memanfaatkan { }untuk menghindari kebingungan nama-teks:

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

sumber