Como evitar espaço após a variável bash na string?

17

Eu tenho uma variável para cor. Eu o uso para definir cores em strings, avaliando-as dentro da string. No entanto, preciso incluir espaço após o nome (para que o nome não contenha parte do texto). Às vezes isso parece ruim.

Como evitar o uso (impressão) desse espaço?

Exemplo (digamos que Red=1e NC=2):

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

Resultado:

1 Note: blabla2.

Saída esperada:

1Note: blabla2.
MatthewRock
fonte

Respostas:

4

O que você deve adquirir o hábito de usar é printf:

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

Onde cada %sum substitui uma variável. E isso -enão é necessário, pois printf aceita valores de barra invertida \ n, \ t, etc, de maneira portátil.

Lembre-se de que echo -enão é portátil para outras conchas.

Outras opções:

Você pode usar dois comandos que concatenam sua saída:

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

Você pode usar uma concatenação simples de string:

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

Ou você pode usar { }para evitar confusões nome-texto:

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

fonte