Come evitare lo spazio dopo la variabile bash nella stringa?


17

Ho una variabile per il colore. Lo uso per impostare il colore su stringhe, valutandolo all'interno della stringa. Tuttavia, devo includere lo spazio dopo il nome (in modo che il nome non contenga parte del testo). Questo a volte sembra male.

Come posso evitare di usare (stampare) questo spazio?

Esempio (diciamo che Red=1e NC=2):

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

Produzione:

1 Note: blabla2.

Uscita prevista:

1Note: blabla2.

Risposte:



4

Quello che dovresti prendere l'abitudine di usare è printf:

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

Dove ciascuno %ssostituisce una variabile. E -enon è necessario poiché printf accetta i valori di barra rovesciata \ n, \ t, ecc. In modo portatile.

Ricorda che echo -enon è portatile per altre shell.

Altre opzioni:

È possibile utilizzare due comandi che concatenano il loro output:

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

È possibile utilizzare la concatenazione di stringhe semplice:

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

Oppure potresti usare { }per evitare confusioni nome-testo:

echo -e "${Red}Note: blabla$NC"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.