Tutoriales

El comando Bash echo explicado con ejemplos en Linux

Como principiante, cuando empiece a trabajar con scripts bash, probablemente aprenderá y usará el primer comando, el echo Mando. Puedes pensar en un comando bash echo similar a este print Comando en otros lenguajes de programación. los echo El comando es un bash integrado y su propósito es imprimir la salida en stdout (es decir, terminal).

En este artículo, le mostraré qué es el comando bash echo y cómo usarlo en sus scripts de shell. Antes de entrar en el tema, veamos la diferencia entre una compilación de bash y un comando externo.

Echo integrado en Bash frente a comando de eco externo

En Linux y otros sistemas similares a Unix, algunos comandos se proporcionan como comandos integrados y externos. Por ejemplo el /bin/echo es un comando externo que tiene el mismo nombre que el echo bash integrado.

Cuando invocamos un comando que existe tanto como un comando integrado como externo, el integrado generalmente se ejecuta de forma predeterminada. Porque el orden de precedencia para los nombres de los comandos es alias, luego function, luego builtin, y luego comando externo en los directorios que están en $PATH en orden.

Si desea forzar un comando externo que esté disponible como comando integrado y externo, simplemente use su ruta completa.

Para decirlo claramente, el siguiente comando llama al bash integrado:

$ echo <some-text>

Y las siguientes llamadas externas echo Mando:

$ /bin/echo <some-text>

Para saber si un comando es incorporado o externo, podemos usar Escribe Mando:

$ type echo 
echo is a shell builtin

Para ver todas las ubicaciones que contienen el archivo ejecutable especificado, use -a Bandera:

$ type -a echo 
echo is a shell builtin
echo is /usr/bin/echo

Para más detalles sobre type El uso de comandos se puede encontrar en el siguiente enlace:

En esta guía, vamos a discutir el bash integrado echo Mando, no el externo.

Mostrar ayuda para el comando bash echo

Casi todos los comandos de Linux tienen una página de manual o una sección de ayuda para ayudar a comprender cómo usar este comando. El manual de ayuda para echo El comando está incluido en la página del manual de bash

Acceda a la página del manual para bash Ejecutar orden:

$ man bash

Entra ahora /echo y presione n hasta llegar al área de ayuda de. ver echo Mando.

Ayuda sobre el comando bash echo

Alternativamente, puede usar el siguiente comando de una línea para abrir el área de ayuda de. para mostrar echo Mando:

$ man bash |  menos --patrón = '^ * echo + ['

Structure of the echo command

The echo command accepts three optional arguments and the text to be printed to stdout.

echo [-neE] [arg ...]







-n → no agregar una nueva línea -e → activar la interpretación de los escapes de barra invertida -E → desactivar la interpretación de los escapes de barra invertida (predeterminado)

Por ahora, saltemos los tres argumentos opcionales y veamos cómo usarlos. echo para imprimir un texto en la salida estándar (terminal).

Puede ejecutar el siguiente código directamente en la terminal o puede crear un archivo de secuencia de comandos y luego ejecutarlo. Lo ejecutaré directamente en la terminal:

$ echo "Hello World"
Hello World
Imprimir texto con el comando echo
Imprimir texto con el comando echo

Eche un vistazo al ejemplo anterior. Es el tradicional hello world Programa que ejecutamos cuando aprendemos un nuevo idioma y somos los primeros en ejecutar código. los echo Comando aceptado aquí "hello world" text como argumento y lo envía al terminal (stdout).

Cómo suprimir el carácter de nueva línea

El comportamiento predeterminado de bash echo Comando, se agrega automáticamente una nueva línea (n). Ejecutar lo mismo hello world Programe de nuevo y observe que el indicador de Terminal aparece en una nueva línea.

$ echo "Hello world"
Hello world

Si desea suprimir este comportamiento ahora, puede utilizar el "-n" Bandera que suprime la nueva línea e imprime el indicador de terminal en la misma línea como se muestra a continuación.

$ echo -n "Hello world"
Hello world
Suprime los saltos de línea con eco
Suprime los saltos de línea con eco

¿Qué pasa si no se pasa ningún argumento?

Si no se pasa ningún argumento al comando echo, el comando no falla pero devuelve una nueva línea en blanco. Inicie su terminal y lance "echo" y verá que solo se imprime y sale una línea en blanco.

$ echo
$ echo $?

Puede anular este comportamiento editando el "-n" Bandera que no devuelve una línea, incluso si no se pasa ningún argumento.

$ echo -n 
Ejecuta Echo sin opciones
Ejecuta Echo sin opciones

¿Dónde será útil eso? Puede que se esté preguntando. Si desea tener algunas líneas en blanco entre sus gastos, puede echo sin argumentos.

Trabajar con variables y comandos

los echo El comando interpreta variables de shell o definidas por el usuario pasadas como argumentos e imprime el valor. Eche un vistazo a los ejemplos a continuación.

Primero la variable env "SHELL" se pasa a la echo Ordena y genera el valor de la variable.

# Environmental Variable:

$ echo " I am currently using $SHELL"
I am currently using /bin/bash

En segundo lugar, la variable personalizada "NAME" se pasa a la echo El comando y el valor se envían al terminal.

# User Defined Variable:

$ NAME="PoP_OS"
$ echo "I am using $NAME"
I am using PoP_OS

También puede ejecutar comandos dentro de los argumentos. Eche un vistazo al siguiente ejemplo donde el "uname -r" El comando se pasa como un argumento y el comando se interpreta y se emite la salida.

$ echo "KERNEL_VERSION=$(uname -r)"
KERNEL_VERSION=5.11.0-7620-generic
Expansión variable y de comando
Expansión variable y de comando

Efectos de usar comillas simples y dobles

En todos los ejemplos anteriores, es posible que haya notado que he incluido los argumentos entre comillas dobles. Entonces, ¿qué pasa si el argumento no está entre comillas? Echo Command no fallará y obtendrá el mismo resultado.

Eche un vistazo al siguiente ejemplo. Ejecuto el mismo comando que usé en la sección anterior pero sin las comillas e imprimo la salida sin errores.

$ echo I am using $NAME
I am using Pop_OS
Usa eco sin comillas
Usa eco sin comillas

Como práctica recomendada, incluya siempre los argumentos entre comillas.

Cuando el argumento está claro, puede utilizar comillas simples o dobles. Sin embargo, cuando ejecute un comando o desee expandir una variable en el argumento, use comillas dobles, no comillas simples.

Las comillas simples evitan que se ejecute un comando o que se expanda una variable. Solo el argumento completo se trata como texto claro.

Eche un vistazo al siguiente ejemplo. Si encerro el argumento entre comillas simples, la variable se convierte en "NAME" no se interpreta ni se trata como texto.

# SINGLE QUOTES

$ echo 'I am using $NAME'
I am using $NAME

# DOUBLE QUOTES

$ echo "I am using Linux $NAME"
I am using Linux PoP_OS
Use echo con comillas simples y dobles
Use echo con comillas simples y dobles

Desvío de salida y tuberías

Como se mencionó anteriormente, el echo El comando imprime la salida a la salida estándar (Terminal) de forma predeterminada. Al escribir scripts de shell, es posible que se encuentre en una situación en la que tenga que leer la salida del echo Comando para archivar. Puedes hacer esto con el Redirección de bash Operador.

$ echo "Welcome to OSTechNix" > /tmp/op.log
$ cat /tmp/op.log
Welcome to OSTechNix

También puede ver la salida del echo Comando al pipe para su posterior procesamiento.

$ echo "I am using $NAME"
I am using PoP_OS
$ echo "I am using $NAME" | grep -i -o POP
PoP
Salida de tubería del comando echo
Salida de tubería del comando echo

Cadena multilínea

Su argumento a veces puede resultar en más de una línea. Puede encerrar el argumento de varias líneas entre comillas dobles para imprimir la salida con nuevas líneas, tabulaciones y espacios en mente.

$ echo "This is Line 1
This is Line 2
This is Line 3"
Pasar una cadena de varias líneas con el comando echo
Pasar una cadena de varias líneas con el comando echo

En algunos casos, aunque su argumento se pasa como una cadena de varias líneas, es posible que desee generarlo como una sola línea. En tales casos, utilice el "" Símbolo al final de cada línea para que la línea siguiente continúe con la línea anterior.

$ echo "I am running 
the echo command 
again"

Salida de muestra:

I am running the echo command again
Imprima una cadena de caracteres de varias líneas en una sola línea con el comando echo
Imprima una cadena de caracteres de varias líneas en una sola línea con el comando echo

Esto no es exclusivamente específico de bash echo Mando. Puede utilizar este enfoque para comandos muy grandes de varias líneas para mejorar la legibilidad.

La barra invertida escapa a la interpretación

los echo El comando acepta muchos caracteres de escape como argumentos. Para que estos caracteres especiales sean reconocidos por el comando echo, el "-e" Se debe entregar la bandera. Puede encontrar la lista de caracteres especiales admitidos en la echo Página de comando man.

Lista de caracteres especiales admitidos
Lista de caracteres especiales admitidos

No utilizará todos los caracteres especiales en su vida diaria. Utilizará principalmente caracteres de nueva línea, tabulaciones y caracteres de escape con barra invertida.

Carácter de nueva línea – n

Se agregará una nueva línea cuando pase n al echo Mando. También puede pasar múltiples n, lo que agregará líneas adicionales en consecuencia.

$ echo -e "This is the first linenThis is the second LinenThis is the third line"

Salida de muestra:

This is the first line
This is the second Line
This is the third line

Pestaña horizontal – t

Cuando t se utiliza, se añaden espacios de tabulación. También puede combinar varios caracteres de escape como hice a continuación.

$ echo -e "Enter the U_NAMEt:n"
Enter the U_NAME    :

Pestaña vertical – v

Para crear pestañas verticalmente, use v.

$ echo -e "Enter the usernamevEnter the password"
Enter the username
                  Enter the password

Suprimir salida – c

Cuando c se usa, todo lo que viene después c se suprime.

$ echo -e "I am using cCosmic Desktop"
I am using

Retorno de carro – r

Cuando r se utiliza, el cursor se restablece al primer carácter y lo que viene después r se imprime para reemplazar los caracteres existentes.

$ echo -e "I use Arch, rBtw"
Btwse Arch, 

Desactive la barra invertida para omitir la interpretación

El comportamiento predeterminado de echo El comando es que los caracteres especiales se tratan como texto claro, a menos que -e Se pasa la bandera. El mismo comportamiento puede lograrse -E Bandera.

Les mostraré un ejemplo.

Déjame ir echo Comando sin banderas:

$ echo "Welcome to OSTechNix nblog"
Welcome to OSTechNix nblog

A continuación, ejecutaré el mismo comando con -E Bandera:

$ echo -E "Welcome to OSTechNix nblog"
Welcome to OSTechNix nblog

Como puede ver, el resultado es similar a cuando ejecuté este echo Comando con -E Bandera y sin bandera. En ambos casos, echo El comando maneja el /n Caracteres especiales como una simple cadena.

Ahora déjame ejecutar el mismo comando de nuevo, pero esta vez con -e Bandera.

$ echo -e "Welcome to OSTechNix nblog"
Welcome to OSTechNix
blog

¿Notaste la diferencia? El comando echo no manejó /n Caracteres como texto sin formato e indica lo que se debe hacer después de la /n Caracteres especiales en la nueva línea.

Entonces, si quieres usar caracteres especiales como n, t, v etc., debes usar -e Bandera. De lo contrario echo trata todo como una simple cadena.

Permítame mostrarle otro ejemplo.

$ echo -e "Hello worldnHello WorldnHello World"
Hello world
Hello World
Hello World

Como puede ver en la salida anterior, echo Pantallas de comando "Hello World" Encadena tres veces seguidas (es decir, en una nueva línea).

¿Qué pasa si solo quieres escapar de un personaje especial específico? Ahí es donde barra invertida doble (\) viene al rescate.

Por ejemplo, quiero escapar del tercero. /n Caracteres especiales en el comando anterior.

Para hacer esto, pondré una barra invertida doble delante del tercer carácter especial (\) Como a continuación:

$ echo -e "Hello worldnHello World\nHello World"
Hello world
Hello WorldnHello World

Ahora, echo El comando maneja el tercero n Caracteres especiales como una simple cadena.

Si tiene muchos caracteres especiales y solo desea escapar de un determinado carácter especial, debe usar la barra invertida doble (\) delante de este personaje especial.

diploma

En este artículo vimos lo que echo Command es y diferentes formas de usarlo. Este es un comando muy simple y no habrá un script de shell sin usarlo echo Comando a menos que elijas usarlo printf cual es la alternativa a echo Comando en bash.

LEER  Código frágil: herramientas para unir y correlacionar bases de datos vulnerables

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba