GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo hacer eco de una nueva línea en Bash Shell Scripts

El comando echo agrega automáticamente una nueva línea al final. Eso es genial.

Pero, ¿qué sucede si desea mostrar solo una nueva línea vacía? ¿O si desea generar algo que contenga una nueva línea?

La buena noticia es que echo te permite usar el carácter de nueva línea \n para imprimir una nueva línea dentro de la misma línea de salida si usa -e opción:

echo -e "Name\nAddress\nPhone Number"

Si ejecuta el comando anterior, obtendrá este resultado:

Name
Address
Phone Number

Eso es bueno, ¿verdad? Echémosle un vistazo más detallado.

Una nueva línea es un término que usamos para especificar que la línea actual ha terminado y el texto continuará desde la línea debajo de la actual. En la mayoría de los sistemas tipo UNIX, \n se utiliza para especificar una nueva línea. Se conoce como carácter de nueva línea.

El comando echo, por defecto, deshabilita la interpretación de los escapes de barra invertida. Entonces, si intenta mostrar una nueva línea usando la secuencia de escape '\n', notará un problema.

$ echo Hello\nworld
Hellonworld

$ echo 'Hello\nworld'
Hello\nworld

Encerrar texto entre comillas simples como un literal de cadena tampoco funciona.

Ese no era un resultado esperado. Para imprimir realmente una nueva línea, puede usar el indicador '-e' para decirle al comando de eco que desea habilitar la interpretación de los escapes de barra invertida.

$ echo -e 'Hello\nworld'
Hello
world

Genial, eso es lo que estás buscando.

Permítanme otras formas de mostrar el carácter de nueva línea.

echo de una variable que contiene una nueva línea

Puede almacenar una cadena en una variable bash y luego repetirla usando el indicador '-e'.

$ str="Hello\nworld"

$ echo -e $str
Hello
world

Utilice el carácter '$' en lugar de la bandera -e

El símbolo del dólar, '$' se llama el carácter de "expansión" en bash. Este es el carácter que usé en el ejemplo anterior para referirme al valor de una variable en shell.

Si observa detenidamente el fragmento a continuación, se dará cuenta de que el carácter de expansión, en este caso, actúa para contener un valor temporal.

$ echo Hello$'\n'world
Hello
world

O bien, puede usar la cadena completa como una 'variable temporal':

$ echo $'Hello\nworld'
Hello
world

Preferiría usar -e bandera, sin embargo.

echo your echo para imprimir algo con nueva línea

Cuando repite un fragmento de texto, el comando echo agregará automáticamente una nueva línea (y así es como puede evitarlo) al final de su texto.

Esto significa que puede encadenar varios comandos de eco para generar una nueva línea.

$ echo Hello; echo world
Hello
world

Utilice printf para imprimir una nueva línea en Bash shell

printf es otra herramienta de línea de comandos que esencialmente imprime texto en la terminal, pero también le permite formatear su texto.

El uso es muy simple y similar a echo pero un poco más confiable y consistente.

$ printf 'Hello\nworld\n'
Hello
world

Como era de esperar, tiene una nueva línea sin usar ninguna bandera.

Conclusión

Personalmente, preferiría quedarme con el indicador -e o usar el comando printf para mostrar las nuevas líneas en la salida. Te recomiendo que hagas lo mismo, pero siéntete libre de experimentar.


Linux
  1. Parámetros especiales de Bash explicados con 4 scripts de Shell de ejemplo

  2. Parámetros posicionales de Bash explicados con 2 scripts de shell de ejemplo

  3. ¿Cómo insertar una nueva línea en el script de shell de Linux?

  4. Cómo:¿Historial ilimitado de Bash/shell?

  5. texto de eco con nueva línea en bash

Cómo crear documentos con scripts Bash

Shell Scripting para principiantes:cómo escribir Bash Scripts en Linux

Cómo usar el comando echo en Bash Scripts en Linux

Cómo instalar Linux Bash Shell en Windows 10

¿Cómo usar if-else en Shell Scripts?

¿Cómo leer argumentos de línea de comando en scripts de Shell?