¿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.

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"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.