Cómo usar el comando Echo en Linux

Puntos clave
- Echo es un comando vital que nos permite obtener resultados visibles de los scripts de shell y puede incluir variables, nombres de archivos y directorios.
- Hay dos versiones de echo: una integrada en el shell Bash y una versión ejecutable binaria.
- Echo se puede usar para escribir texto en la ventana de la terminal, usar variables para salida dinámica, incrustar salida de comando, formatear texto con caracteres de barra invertida, enumerar archivos y directorios, y escribir en archivos.
EL echo
El comando es perfecto para escribir texto formateado en la ventana de terminal. Y no tiene por qué ser texto estático. Puede incluir variables de shell, nombres de archivos y directorios. También puede redirigir echo para crear archivos de texto y archivos de registro. Sigue esta sencilla guía para descubrir cómo.
¿Qué hace el eco?
El eco repite lo que le dijeron que repitiera. Esta es una función simple pero vital. Sin echo
por ejemplo, no podríamos obtener resultados visibles de los scripts de shell.
Si bien no está cargado de una multitud de detalles, hay muchas posibilidades de que eso suceda. echo
Tiene algunas características que no conocías o que habías olvidado.
Hay dos versiones de eco.
La mayoría de los sistemas Linux proporcionan dos versiones de echo
. El shell Bash tiene su propio echo
incorporado y hay una versión binaria ejecutable de echo
También.
Podemos ver las dos versiones diferentes usando los siguientes comandos:
type echo
whereis echo
EL type
comando nos dice si el comando que pasamos como argumento es un shell integrado, un ejecutable binario, un alias o una función. Nos dice esto echo
es un caparazón incorporado.
Tan pronto como encuentre una respuesta, type
deja de buscar más coincidencias. Por lo que no nos dice si hay otros comandos con el mismo nombre en el sistema. Pero nos dice cuál encuentra primero. Y esto es lo que se usará de forma predeterminada cuando emitamos ese comando.
EL whereis
El comando busca el ejecutable binario, el código fuente y la página de manual del comando que le pasamos como parámetro de línea de comando. No busca componentes integrados del shell porque no tienen un ejecutable binario separado. Son una parte integral del ejecutable de Bash.
EL whereis
el comando lo informa echo
es un ejecutable binario ubicado en el archivo /bin
directorio.
Para usar esa versión de echo
debes llamarlo explícitamente proporcionando la ruta al ejecutable en la línea de comando:
/bin/echo --version
El caparazón incorporado no sabe qué --version
el argumento de la línea de comando es, simplemente lo repite en la ventana de terminal:
echo --version
Todos los ejemplos que se muestran aquí utilizan la versión predeterminada de echo
en el shell Bash.
Escribir texto en terminal con eco
Para escribir una cadena simple de texto en la ventana de terminal, escriba echo
y la cadena que desea que se muestre:
echo My name is Dave.
El texto se repite para nosotros. Pero a medida que experimentes, pronto descubrirás que las cosas pueden volverse un poco más complicadas. Mira este ejemplo:
echo My name is Dave and I'm a geek.
La ventana del terminal muestra una >
él firma y se sienta allí, esperando. Ctrl+C lo llevará nuevamente al símbolo del sistema. ¿Que paso ahi?
La comilla simple o apóstrofe en la palabra "soy" es confusa echo
. Interpretó esa cita única como el comienzo de una sección de texto citada. Como no se detectó una comilla simple de cierre, echo
Estaba esperando más comentarios. Esperaba recibir más aportes que incluyeran la comilla simple que faltaba y que estaba esperando.
Para incluir una comilla simple en una cadena, la solución más sencilla es encerrar toda la cadena entre comillas dobles:
echo "My name is Dave and I'm a geek."
Incluir el texto entre comillas dobles es un buen consejo general. En los scripts, delimite claramente los parámetros que está pasando echo
. Esto facilita mucho la lectura y la depuración de scripts.
¿Qué sucede si desea incluir un carácter de comilla doble en su cadena de texto? Es fácil, sólo inserta una barra invertida delante de las comillas dobles (sin espacios entre ellas).
echo "My name is Dave and I'm a "geek.""
Para nosotros, esto pone la palabra "geek" entre comillas dobles. Pronto veremos más de estos caracteres de barra invertida.
Usando variables con eco
Hasta ahora hemos escrito el texto predeterminado en la ventana de la terminal. Podemos usar variables con echo
para producir una salida que sea más dinámica y contenga valores insertados por el shell. Podemos definir una variable simple con este comando:
my_name="Dave"
una variable llamada my_name
fue creado. Se le asignó el valor de texto "Dave". Podemos usar el nombre de la variable en las cadenas que pasamos echo
y el valor de la variable se escribirá en la ventana de terminal. Tienes que poner el signo del dólar. $
delante del nombre de la variable a dejar echo
saber que es una variable.
Hay una advertencia. Si ha incluido la cadena entre comillas simples echo
tratará todo literalmente. Para mostrar el valor de la variable y no el nombre de la variable, utilice comillas dobles.
echo 'My name is $my_name'
echo "My name is $my_name"
Conviene repetirlo muy apropiadamente:
- El uso de comillas simples hace que el texto se escriba literalmente en la ventana del terminal.
- El uso de comillas dobles hace que la variable se interprete (también llamada expansión de variable) y el valor se escriba en la ventana del terminal.
Usando comandos con eco
Podemos usar un comando con echo
e incrustar su salida en la cadena escrita en la ventana de terminal. Tenemos que usar el signo del dólar. $
como si el comando fuera una variable y encierre el comando completo entre paréntesis.
Usaremos el comando de fecha. Un consejo es usar el comando solo antes de comenzar a usarlo con echo
. De esta manera, si hay algún problema con la sintaxis de tu comando, lo identificas y lo corriges antes de incluirlo en el archivo. echo
dominio. Entonces, si el echo
El comando no hace lo que esperas, sabrás que el problema debe estar en el archivo. echo
sintaxis porque ya ha demostrado la sintaxis del comando.
Entonces, prueba esto en la ventana de terminal:
date +%D
Y, satisfechos de haber conseguido lo que esperamos del comando date, lo integraremos en un archivo echo
dominio:
echo "Today's date is: $(date +%D)"
Tenga en cuenta que el comando está entre paréntesis y un signo de dólar $
está inmediatamente antes del primer paréntesis.
Formatear texto con eco
EL -e
La opción (habilitar escapes de barra invertida) nos permite usar algunos caracteres de barra invertida para cambiar el diseño del texto. Estos son los caracteres de escape de barra invertida que podemos usar:
- A: Aviso (históricamente conocido como BEL). Esto genera el sonido de alerta predeterminado.
- B: escribe un carácter de retroceso.
- C: abandone cualquier salida adicional.
- Y: escribe un carácter de escape.
- F: escribe un carácter de avance de página.
- NORTE: escribe una nueva línea.
- R: escribe un retorno de carro.
- t: escribe una tabulación horizontal.
- v: escribe una tabulación vertical.
- \: escribe un carácter de barra invertida.
Usemos algunos de ellos y veamos qué hacen.
echo -e "This is a long line of textnsplit across three linesnwithttabstontthetthirdtline"
El texto se divide en una nueva línea donde hemos utilizado el archivo. n
caracteres y se inserta una tarjeta donde usamos el archivo t
caracteres.
echo -e "Herevarevverticalvtabs"
como el n
caracteres de nueva línea, una tabulación vertical v
mueve el texto a la línea de abajo. Pero a diferencia n
caracteres de nueva línea, el v
La pestaña vertical no comienza una nueva fila en la columna cero. Utilice la columna actual.
EL b
Los caracteres de retroceso mueven el cursor un carácter hacia atrás. Si hay más texto para escribir en el terminal, ese texto sobrescribirá el carácter anterior.
echo -e "123b4"
El "3" se sobrescribe con el "4".
EL r
Causas del carácter de retorno de carro. echo
para volver al principio de la línea actual y escribir cualquier texto adicional de la columna cero.
echo -e "123r456"
Los caracteres "123" se sobrescriben con los caracteres "456".
EL a
el personaje atento producirá un "bip" audible. Utilice el sonido de alerta predeterminado para el tema actual.
echo -e "Make a bleepa"
EL -n
(sin nueva línea) no es una secuencia de barra invertida, pero afecta la estética del diseño del texto, así que lo discutiremos aquí. Previene echo
desde agregar una nueva línea hasta el final del texto. El símbolo del sistema aparece directamente después del texto que escribe en la ventana del terminal.
echo -n "no final newline"
Usando echo con archivos y directorios
puedes usar echo
como una especie de versión pobre de ls
. Tus opciones son pocas y distantes a la hora de usarlo echo
como esto. Si necesitas algún tipo de fidelidad o control preciso, lo mejor es utilizarlo ls
y su legión de opciones.
Este comando enumera todos los archivos y directorios en el directorio actual:
echo *
Este comando enumera todos los archivos y directorios en el directorio actual cuyo nombre comienza con "D":
echo D*
Este comando enumera todos los archivos ".desktop" en el directorio actual:
echo *.desktop
Sí. Esto no es un juego. echo
puntos de fuerza. Uso ls
.
Escribir en un archivo con eco
Podemos redirigir la salida de echo
y crear archivos de texto o escribir en archivos de texto existentes.
Si utilizamos el >
operador de redirección, el archivo se crea si no existe. Si el archivo existe, la salida de echo
se agrega al principio del archivo, sobrescribiendo cualquier contenido anterior.
Si utilizamos el >>
operador de redirección, el archivo se crea si no existe. la salida de echo
se agrega al final del archivo y no sobrescribe ningún contenido existente del archivo.
echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt
sample.txt en una ventana de terminal" style="display:block;height:auto;max-width:100%;" data-img-url=" />
Con el primer comando se crea un nuevo archivo y se inserta texto en él. El segundo comando agrega una línea de texto al final del archivo. EL cat
El comando muestra el contenido del archivo en la ventana del terminal.
Y por supuesto, podemos incluir variables para agregar información útil a nuestro archivo. Si el archivo es un archivo de registro, es posible que queramos agregar una marca de tiempo. Podemos hacer esto con el siguiente comando.
Observe las comillas simples alrededor de los parámetros para el date
dominio. Impiden que el espacio entre parámetros se interprete como el final de la lista de parámetros. Se aseguran de que se pasen los parámetros. date
correctamente.
echo "Logfile started: $(date +'%D %T')" > logfile.txt
cat logfile.txt
logfile.txt en una ventana de terminal" style="display:block;height:auto;max-width:100%;" data-img-url=" />
Nuestro archivo de registro se crea para nosotros y cat
nos muestra que se han agregado tanto la marca de fecha como la marca de tiempo.
Relacionado: ¿Qué son stdin, stdout y stderr en Linux?
Este es el repertorio de Echo
Un comando simple pero esencial. Si no existiera habría que inventarlo.