Evitar salto de línea con echo

Muchas veces usamos literales combinados con variables para formar cadenas de texto. O mostramos por pantalla unos literales u otros en función de eventos. Y, en esas, y en otras situaciones, nos interesa mostrar por pantalla una única línea aunque el texto se esté generando en distintas partes del script.

Cuando queremos mostrar texto por pantalla usamos el comando echo. Pero si queremos mostrar varias cadenas, nos las divide en tantas líneas como cadenas, ya que si escribimos:

#!/bin/bash

echo "Hola, "

echo "mundo"

nos devuelve:

Hola,
mundo

Para no generar un salto de línea con echo, podemos usar el modificador -n.

#!/bin/bash

echo -n "Hola, "

echo "mundo"

Devuelve:

Hola, mundo

O, si lo quieren probar de una forma más legible, pueden usar un sleep entre una y otra cadena:

#!/bin/bash

echo -n "Hola,"

sleep 5

echo "mundo"

O, más bonito todavía, recorrer una cadena carácter a carácter y que echo escriba en la misma línea todos los caracteres, pero dejando un tiempo de espera entre carácter y carácter:

#!/bin/bash

string="Hola, mundo"
let len=${#string}-1
for (( pos=0; pos<=$len; pos++ ))
do
    echo "${string:$pos:1}"
    sleep 0.3
done
echo ""

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.