16 Ejemplos prácticos del comando ‘echo’ en GNU Linux

En el artículo de hoy vamos a ver diferentes maneras de uso del comando ‘echo‘ en GNU Linux. Para quien no lo conozca se trata de un comando que se encarga de escribir cada STRING dado en la salida estándar.

Es un comando muy habitual en sistemas UNIX y similares, como es el caso de los sistemas del Ñu y el Pingüino. Se utiliza tanto en Bash como en C, para realizar scripts.

16 Ejemplos prácticos del comando “echo” en GNU Linux

Su sintaxis de uso es:

1
echo [option(s)] [string(s)]

1. Ingresamos una línea de texto y mostramos la salida estándar:

1
echo Hoy tampoco será el año de GNU Linux en el escritorio

Con este resultado:

1
2
[davidochobits@laptop ~]# echo Hoy tampoco será el año de GNU Linux en el escritorio
Hoy tampoco será el año de GNU Linux en el escritorio

2. Declaramos una variable y realizamos un echo de un valor.

1
2
3
[davidochobits@laptop ~]# Y=15
[davidochobits@laptop ~]# echo El valor de la variable Y es = $Y
El valor de la variable Y es = 15

NOTA: Con la opción -e, el comando echo actua con los carácteres tras una barra invertida. Si has trabajado con C, esto te sonará

3. Si utilizamos el parámetro -e, más “\b” tras cada una de las palabras, se eliminan todos los espacios intermedios.

1
2
[davidochobits@laptop ~]# echo -e "Hoy \btampoco \bserá \bel \baño \bde \bGNU \bLinux \ben \bel \bescritorio\b"
HoytampocoseráelañodeGNULinuxenelescritorio

4. Utilizando -e más “\n“, se añadirá un salto de línea

1
2
3
4
5
6
7
8
9
10
11
12
[davidochobits@laptop ~]# echo -e "Hoy \ntampoco \nserá \nel \naño \nde \nGNU \nLinux \nen \nel \nescritorio"
Hoy
tampoco
será
el
año
de
GNU
Linux
en
el
escritori

5. Al utilizar -e más “\t“, obtendremos espacio de tabulación horizontal.

1
2
[davidochobits@laptop ~]# echo -e "Hoy \ttampoco \tserá \tel \taño \tde \tGNU \tLinux \ten \tel \tescritorio"
Hoy     tampoco         será    el      año     de      GNU     Linux   en      el      escritorio

6. Podemos utilizar el salto de línea “\n” junto los espacio de tabulación con “\t

1
2
3
4
5
6
7
8
9
10
11
12
13
[davidochobits@laptop ~]# echo -e "\n\tHoy \n\ttampoco \n\tserá \n\tel \n\taño \n\tde \n\tGNU \n\tLinux \n\ten \n\tel \n\tescritorio"
 
        Hoy
        tampoco
        será
        el
        año
        de
        GNU
        Linux
        en
        el
        escritorio

7. Para obtener espacios de tabulación verticales utilizaremos -e más “\v

1
2
3
4
5
6
7
8
9
10
11
12
[davidochobits@laptop ~]# echo -e "\vHoy \vtampoco \vserá \vel \vaño \vde \vGNU \vLinux \ven \vel \vescritorio"                    
Hoy
    tampoco
            será
                 el
                    año
                        de
                           GNU
                               Linux
                                     en
                                        el
                                           escritorio

8. Como no podía ser de otra manera podemos combinar “\n” para los saltos de línea y “\v” para la tabulación vertical.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[davidochobits@laptop ~]# echo -e "\n\vHoy \n\vtampoco \n\vserá \n\vel \n\vaño \n\vde \n\vGNU \n\vLinux \n\ven \n\vel \n\vescritorio"
 
Hoy
 
tampoco
 
será
 
el
 
año
 
de
 
GNU
 
Linux
 
en
 
el
 
escritorio

NOTA: Podemos duplicar la tabulación vertical u horizontal además del salto de línea las veces que queramos.

9. Con “\r” onbtenemos un retorno de carro, tal y como vemos en el ejemplo:

1
2
[davidochobits@laptop ~]# echo -e "Hoy \rtampoco será el año de GNU Linux en el escritorio"
tampoco será el año de GNU Linux en el escritorio

10. Con “\c“, suprimos una nueva línea:

1
2
[davidochobits@laptop ~]# echo -e "Hoy tampoco será \cel año de GNU Linux en el escritorio"
Hoy tampoco será [davidochobits@laptop ~]#

11. Omitimos una salto de línea utilizando “\n” antes del STRING

1
2
[davidochobits@laptop ~]# echo -n "Hoy tampoco será el año de GNU Linux en el escritorio"
Hoy tampoco será el año de GNU Linux en el escritorio[davidochobits@laptop ~]

12. Podemos mostrar una alerta de sonido utilizando “\a“, más el parámetro -e.

1
2
[davidochobits@laptop ~]# echo -e "Hoy tampoco será el año de \aGNU Linux en el escritorio"
Hoy tampoco será el año de GNU Linux en el escritorio

13. Imprimir todos los ficheros y carpetas, a modo de comando “ls”

1
echo *

14. Imprimir todos los ficheros de un formato en concreto

1
echo *.txt

15. Con “echo” podemos generar un fichero utilizando una salida estándar.

1
echo "Prueba de fichero" > prueba.txt

16. Añadir un STRING a un fichero

1
echo "Segunda prueba de fichero" >> prueba.txt

Y esto ha sido todo, os dejo un resumen de los parámetros:

Opciones Descripción
-n No imprime la nueva línea
-e Interactuva con los valores tras la barra invertida
\b Espacio
\\ Barra invertida
\n Nueva línea
\r Retorno de carro
\t Tabulación horizontal
\v Tabulación vertical

Y aquí lo dejamos, espero que os haya parecido interesante a par que útil.

Nos vamos leyendo

Fuentes consultadas:

Tecmint – 15 Practical Examples of ‘echo’ command in Linux

5 Respuestas

  1. Muy buen post David!

    Y muy chulo también que puedas representar caracteres Unicode con:

    $ echo -e “\u2622”
    $ echo -e “\U1f41e”

    Por cierto, una cosa que me hace explotar la cabeza a la hora de hacer un md5 o un base64 es olvidarme del -n:

    $ echo -n “password” | md5sum

    que te puede cambiar totalmente.

  2. Me agrado este que pusiste echo *.txt para usarlo en vez del que uso normalmente ls | grep “.txt$”

  3. Mario Alberto Maldonado dice:

    Hola, estoy construyendo un script nada complicado…
    En una de mis lineas busco un archivo:
    dato=ls *archivo* | tail -1
    head -1 $dato | grep ‘Inicio’ | cut -d\ -f2

    Donde estoy pidiéndole al script que el último archivo de la lista (Previamente habiéndole dicho en dónde trabajar) me de la primera línea que contenga la palabra Inicio y quitando las demás palabras de ésa misma línea, la respuesta de ésta solicitud es una hora HH:MM:sss y hasta ahí todo bien pero me gustaría saber como puedo mostrar esa respuesta en un echo para darle formato a quien lo ejecute por ejemplo

    HH:MM:sss – Inicio del proceso de grabado.

    ¿Como puedo realizar un comando dentro de un echo?
    Espero haberme dado a entender.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
A %d blogueros les gusta esto: