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.
Tabla de Contenidos
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.
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
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
¿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
¿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
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
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
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
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"
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
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.
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.