GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Bash Echo explicado con ejemplos en Linux

Como principiante, cuando comienza a trabajar con scripts de Bash, el primer comando que probablemente aprenda y use es echo dominio. Puede pensar en el comando bash echo algo similar a print comando en otros lenguajes de programación. El echo El comando es un bash incorporado y su propósito es imprimir la salida en la salida estándar (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 materia, veamos la diferencia entre un Bash incorporado y un comando externo.

Eco incorporado de Bash vs comando de eco externo

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

Cuando llamamos a un comando que existe tanto como un comando interno como externo, generalmente el comando incorporado 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 listados en $PATH en orden.

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

Para poner esto claramente, el siguiente comando llama al bash incorporado:

$ echo <some-text>

Y las siguientes llamadas externas echo comando:

$ /bin/echo <some-text>

Para averiguar si un comando es un comando interno o externo, podemos usar type comando:

$ type echo 
echo is a shell builtin

Para mostrar todas las ubicaciones que contienen el ejecutable especificado, use -a bandera:

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

Para más detalles sobre type uso de comandos, consulte el siguiente enlace:

  • Tutorial de comandos de tipo con ejemplos para principiantes

A lo largo de esta guía, discutiremos el echo incorporado de bash comando, no el externo.

Mostrar la ayuda del comando bash echo

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

Para acceder a la página man de bash comando, ejecutar:

$ man bash

Ahora, escriba /echo y presiona n hasta que vea la sección de ayuda de echo comando.

Alternativamente, puede usar el siguiente comando de una sola línea para mostrar la sección de ayuda de echo comando:

$ man bash | less --pattern='^ *echo +\['

Estructura del comando echo

El echo El comando acepta tres argumentos opcionales y el texto que se imprimirá en la salida estándar.

echo [-neE] [arg ...]

-n → Do not append a new line
-e → enable interpretation of backslash escapes
-E → disable the interpretation of backslash escapes (default)

Omitamos los tres argumentos opcionales por ahora y veamos cómo usar echo para imprimir un texto en la salida estándar (Terminal).

Puede ejecutar el siguiente fragmento de código directamente en la terminal o crear un archivo de secuencia de comandos y luego ejecutarlo. Voy a ejecutarlo directamente en la Terminal:

$ echo "Hello World"
Hello World

Echa un vistazo al ejemplo anterior. Es el tradicional hello world programa que ejecutamos cada vez que aprendemos un nuevo idioma y lo ejecutamos como el primer código. El echo el comando aquí acepta "hello world" text como argumento y lo imprime en la terminal (Stdout).

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

El comportamiento predeterminado de bash echo comando es, agregará automáticamente una nueva línea (\n ). Ejecute el mismo hello world programe de nuevo y observe que el aviso del terminal se mostrará en una nueva línea.

$ echo "Hello world"
Hello world

Ahora, si desea suprimir este comportamiento, puede usar el "-n" marca que suprimirá la nueva línea y el aviso del terminal se imprimirá en la misma línea que se muestra a continuación.

$ echo -n "Hello world"
Hello world

Qué sucede cuando no se pasa ningún argumento

Cuando no se pasa ningún argumento al comando echo, el comando no fallará pero devolverá una nueva línea vacía. Inicie su terminal y ejecute "echo" y verá que simplemente imprime una línea vacía y sale.

$ echo
$ echo $?
0

Puede anular este comportamiento agregando "-n" marca que no imprimirá una nueva línea incluso si no se pasa ningún argumento.

$ echo -n 

¿Dónde será útil esto? Usted podría preguntarse. Cuando desee algunas líneas vacías entre sus salidas, puede usar echo sin argumentos.

Trabajar con variables y comandos

El echo El comando interpretará las variables de shell o definidas por el usuario que se pasan como argumento e imprimirá el valor. Echa un vistazo a los siguientes ejemplos.

Primero, la variable env "SHELL" se pasa al echo comando e imprime el valor de la variable.

# Environmental Variable:

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

En segundo lugar, la variable definida por el usuario "NAME" se pasa al echo comando y el valor se imprime en el 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 "uname -r" el comando se pasa como argumento y el comando se interpreta y se imprime la salida.

$ echo "KERNEL_VERSION=$(uname -r)"
KERNEL_VERSION=5.11.0-7620-generic

Impacto del uso de comillas simples y dobles

En todos los ejemplos anteriores, es posible que haya notado que he estado usando comillas dobles alrededor de los argumentos. Entonces, ¿qué sucede cuando el argumento no está entre comillas? Echo Command no fallará y obtendrá el mismo resultado.

Echa un vistazo al siguiente ejemplo. Estoy ejecutando el mismo comando que usé en la sección anterior pero sin comillas e imprime la salida sin ningún error.

$ echo I am using ${NAME}
I am using Pop_OS

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

Si el argumento es texto sin formato, puede usar comillas simples o dobles. Pero si desea ejecutar cualquier comando o expandir cualquier variable en el argumento, debe usar comillas dobles, no comillas simples.

La comilla simple evitará que se ejecute cualquier comando o que se expanda una variable. Simplemente tratará todo el argumento como texto sin formato.

Mira el siguiente ejemplo. Cuando encierro el argumento entre comillas simples, la variable "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

Redireccionamiento de salida y tubería

Como se indicó anteriormente, el echo El comando imprime la salida en la salida estándar (terminal) de forma predeterminada. Cuando escribe scripts de shell, puede terminar en una situación para almacenar la salida del echo comando a un archivo. Puedes hacer esto usando la redirección bash operador.

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

Lectura sugerida:

  • Redireccionamiento de Bash explicado con ejemplos
  • Tutorial de Bash Heredoc para principiantes

También puede enviar la salida del echo comando a la 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

Cadena de varias líneas

Su argumento a veces puede generar más de una línea. Puede encerrar el argumento de varias líneas entre comillas dobles para imprimir el resultado teniendo en cuenta las nuevas líneas, tabulaciones y espacios.

$ echo "This is Line 1
This is Line 2
This is Line 3"

En algunos casos, aunque su argumento se pasa como una cadena de varias líneas, es posible que desee imprimirlo como una sola línea. En tales casos, use el "\" símbolo al final de cada línea, por lo que la siguiente línea será una continuación de la línea anterior.

$ echo "I am running \
the echo command \
again"

Salida de muestra:

I am running the echo command again

Esto no es exclusivo de bash echo dominio. Puede usar este enfoque para generar comandos muy grandes en varias líneas para una mejor legibilidad.

La barra invertida escapa a la interpretación

El echo El comando acepta muchos caracteres escapados como argumentos. Para que estos caracteres especiales sean reconocidos por el comando echo, el "-e" se debe pasar la bandera. Puede obtener la lista de caracteres especiales admitidos en echo página man del comando.

No utilizará todos los caracteres especiales en su vida cotidiana. En su mayoría, utilizará caracteres de nueva línea, tabuladores y caracteres de escape de barra invertida.

Carácter de nueva línea - \n

Se agregará una nueva línea cuando pase \n al echo dominio. También puede pasar múltiples \n que agregarán más líneas en consecuencia.

$ echo -e "This is the first line\nThis is the second Line\nThis 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, agregará espacios de tabulación. También puede combinar varios caracteres de escape como hice a continuación.

$ echo -e "Enter the U_NAME\t:\n"
Enter the U_NAME    :

Pestaña vertical - \v

Para crear pestañas verticalmente, use \v .

$ echo -e "Enter the username\vEnter the password"
Enter the username
                  Enter the password

Suprimir salida - \c

Cuando \c se usa, cualquier cosa que viene después de \c será suprimido.

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

Retorno de carro - \r

Cuando \r se usa, el cursor se restablece al primer carácter y lo que viene después de \r se imprime reemplazando los caracteres existentes.

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

Deshabilitar la barra invertida escapa a la interpretación

El comportamiento predeterminado de echo comando es que tratará los caracteres especiales como texto sin formato a menos que -e se pasa la bandera. Se puede lograr el mismo comportamiento usando -E bandera.

Te mostraré un ejemplo.

Déjame ejecutar echo comando sin banderas:

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

Luego, ejecuto el mismo comando con -E Bandera:

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

Como puede ver, el resultado es similar cuando ejecuté el echo comando con -E bandera y sin bandera. En ambos casos, echo el comando trata el /n carácter especial como cadena simple.

Ahora déjame ejecutar el mismo comando nuevamente, pero esta vez con -e bandera.

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

¿Viste la diferencia? El comando echo no trató /n carácter como texto sin formato y muestra lo que viene después del /n carácter especial en la nueva línea.

Por lo tanto, si desea utilizar caracteres especiales como \n , \t , \v etc., debe usar -e bandera. De lo contrario echo tratará todo como una simple cadena.

Permítame mostrarle otro ejemplo.

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

Como puede ver en el resultado anterior, echo el comando muestra "Hello World" cadena tres veces, una por una (es decir, en una nueva línea).

¿Qué sucede si desea escapar solo de un carácter especial específico? Aquí es donde doble barra invertida (\\ ) viene al rescate.

Por ejemplo, quiero escapar del tercer /n carácter especial en el comando anterior.

Para hacerlo, voy a anteponer el tercer carácter especial con doble barra invertida (\\ ) como a continuación:

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

Ahora, echo el comando trata el tercer \n carácter especial como cadena simple.

Por lo tanto, cuando tiene muchos caracteres especiales y desea escapar solo un carácter especial específico, debe agregar la barra invertida doble (\\ ) delante de ese carácter especial.

Conclusión

En este artículo, hemos visto lo que echo comando es y diferentes formas de usarlo. Este es un comando muy simple y no habrá script de shell sin usar echo comando a menos que decidas usar printf cual es la alternativa para echo comando en bash.

Lectura relacionada:

  • Secuencias de comandos de Bash:variables explicadas con ejemplos
  • Bash Scripting:funciones explicadas con ejemplos
  • Secuencias de comandos de Bash:bucle For explicado con ejemplos
  • Secuencias de comandos de Bash:ciclo while y till explicado con ejemplos

Linux
  1. Comando wc Linux con ejemplos

  2. Comando de apagado de Linux explicado con ejemplos

  3. Comando Traceroute de Linux, explicado con ejemplos

  4. Comando JQ en Linux con ejemplos

  5. Ejemplos de comandos echo en Linux

Comando Linux more explicado con ejemplos

Comando wget de Linux explicado con ejemplos

Comando Tr en Linux explicado con ejemplos

w Comando explicado con ejemplos en Linux

Explicación del comando tee de Linux (con ejemplos)

Explicación del comando csplit de Linux (con ejemplos)