¿Cómo evitar el espacio después de la variable bash en la cadena?

17

Tengo una variable para el color. Lo uso para establecer el color en cadenas, evaluándolo dentro de la cadena. Sin embargo, necesito incluir espacio después del nombre (para que el nombre no contenga parte del texto). Esto a veces se ve mal.

¿Cómo puedo evitar usar (imprimir) este espacio?

Ejemplo (digamos eso Red=1y NC=2):

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

Salida:

1 Note: blabla2.

Rendimiento esperado:

1Note: blabla2.
MatthewRock
fuente

Respuestas:

4

Lo que debe acostumbrarse a usar es printf:

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

Donde cada uno %sreemplaza una variable. Y -eno es necesario ya que printf acepta valores de barra invertida \ n, \ t, etc. de manera portátil.

Recuerde que echo -eno es portátil para otros proyectiles.

Otras opciones:

Puede usar dos comandos que concatenan su salida:

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

Podría usar una concatenación de cadenas simple:

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

O puede utilizar { }para evitar confusiones de nombre y texto:

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

fuente