Por si no lo sabías el comando echo de Linux es perfecto para que puedas escribir texto formateado en la ventana del terminal y no tiene que ser texto estático. Puedes incluir variables del shell, nombres de archivo y directorios.
Así como también puedes redirigir el comando echo para crear archivos de texto y archivos de registro por igual. Si quieres aprender a hacer todas estas cosas, solo debes seguir leyendo sobre estas líneas.
Si quieres saber más acerca de las líneas de comando, te recomendamos este artículo acerca de Linux: cómo usar los comandos de búsqueda. Solo tienes que hacer clic en el enlace.
El comando echo de Linux repite lo que sea que le digas que repita
Para hablar de metáforas y de mitología acerca del origen del “Echo” (eco, en español) nos remontamos a los dioses del olimpo. A Zeus le gustaba abandonar el Olimpo para “asociarse” con hermosas ninfas. En un viaje, le dijo a una ninfa de montaña llamada Echo que matara a su esposa Hera, si ella lo seguía. Hera vino a buscar a Zeus, y Echo hizo todo lo que pudo para mantener a Hera alejada.
Finalmente, Hera perdió los estribos y maldijo a la pobre Echo para que solo repitiera las últimas palabras que alguien más le dijera. Lo que Hera le hizo a Zeus cuando lo alcanzó es una incógnita y no lo sabemos hasta el día de hoy.
Y eso es más o menos lo que hace el comando echo de Linux en todas partes. Repite lo que se le dice que repita. Esa es una función simple, pero vital en este sistema operativo. Sin el comando echo, no podríamos obtener resultados visibles de los scripts de shell, por ejemplo.
¿Qué es el comando echo de Linux?
Por si no lo sabías, la mayoría de los sistemas Linux proporcionan dos versiones del comando echo. El shell Bash tiene su propio comando echo incorporado y también hay una versión ejecutable binaria de este comando.
Podrás ver las dos versiones diferentes usando los siguientes comandos:
type echo
whereis echo
El comando type te dice si el comando que le pasaste como argumento es un shell incorporado, un ejecutable binario, un alias o una función. También te informa que el comando echo es un shell incorporado.
Tan pronto como encuentre una respuesta, la función type deja de buscar más coincidencias. Por lo tanto, no dice si hay otros comandos con el mismo nombre presentes en el sistema. Pero sí muestra cuál encuentra primero y ese es el que se va a utilizar por defecto cuando escribas ese comando.
El comando whereis busca el ejecutable binario, el código fuente y la página de manual para el comando que al que le pasas como parámetro de línea de comando. No busca ningún shell incorporado porque no tienen un ejecutable binario separado. Son una parte integral del ejecutable Bash.
El comando whereis informa que echo es un ejecutable binario ubicado en el directorio /bin. Así que para usar esa versión del comando echo en Linux, necesitarías llamarla explícitamente proporcionando la ruta al ejecutable en la siguiente línea de comando:
/bin/echo –version
Así, el shell incorporado no sabe cuál es el argumento de la línea de comando – -version, solo lo repite esto en la ventana de terminal:
echo --version
Todos estos ejemplos que te mostramos utilizan la versión predeterminada de echo, en el shell Bash.
¿Cómo puedes escribir texto en la terminal de Linux?
Para escribir una cadena de texto simple en la ventana del terminal, escribe echo y la cadena que quieres que se muestre en la terminal. De este modo, el texto se repite cuando escribes una línea de echo.
Pero a medida que experimentes, pronto descubrirás que las cosas pueden volverse un poco más complicadas. Pero debes tener cuidado con los símbolos que escribes ya que pueden “confundir” al comando echo. Si escribes comillas simples en una frase y no la cierras, el comando echo esperas a que escribas más texto. Para que un error como este no pase, solo debes colocar toda la expresión de texto que vas a escribir entre comillas dobles.
Ajustar el texto entre comillas dobles es un buen consejo en general. En los scripts, delimita limpiamente los parámetros a los que está pasando el comando echo. Esto hace que leer y depurar guiones sea mucho más fácil y que leas las líneas de comando más limpia y sin confusiones.
¿Qué sucede si quieres incluir un carácter de comillas dobles en tu cadena de texto? Eso es fácil, simplemente coloca una barra diagonal inversa (\) delante de las comillas dobles (no puedes dejar espacio entre ellas).
Puedes usar variables con el comando echo de Linux
Hasta ahora, has estado escribiendo texto predefinido en la ventana del terminal. También puedes usar variables con echo para producir resultados que sean más dinámicos y que el shell te haya insertado valores. Del mismo modo, puedes definir una variable simple con este comando:
my_name = (variable)
Se ha creado una variable llamada my_name a la que puedes asignarle cualquier valor de texto. Puedes usar el nombre de la variable en las cadenas a las que le vas a pasar el comando echo y el valor de la variable se escribirá en la ventana de terminal. Debes colocar un signo de dólar ($) frente al nombre de la variable para informar al comando echo que es una variable.
Aquí tenemos que advertirte algo. Si has envuelto tu cadena entre comillas simples, echo tratará todo de forma literal. Para mostrar el valor de la variable y no el nombre de la variable, tienes que utilice comillas dobles.
En vez de colocar: echo ‘Mi nombre es $ my_name’
Debes escribir esto: echo «Mi nombre es $ my_name»
Como es algo acertado, vale la pena repetirlo para que lo recuerdes:
- El uso de comillas simples dan resultados en el texto que se escribe en la ventana de terminal.
- El uso de comillas dobles da como resultado la interpretación de la variable, también llamada expansión y el valor se escribe en la ventana del terminal.
Puedes utilizar otros comandos con echo
Puedes usar un comando echo e incorporar su salida en la cadena que se escribe en la ventana del terminal. Des usar el símbolo de dólar ($) como si el comando fuera una variable y ajustar todo el comando entre paréntesis.
Te vamos a poner un ejemplo de cómo usar el comando date. Un consejo que también te damos es usar el comando por sí solo antes de comenzar a usar el echo. De esa manera, si hay algún problema con la sintaxis de tu comando, lo puedes identificar y podrás corregirlo antes de incluirlo en el comando echo.
Luego, si el comando echo no hace lo que esperas, sabrá que el problema debe estar relacionado con la sintaxis de echo porque ya ha demostrado la sintaxis del comando propiamente dicho.
Entonces, intenta esto en la ventana del terminal:
date +%D
Si estás satisfecho de que estás obteniendo la respuesta que esperas del comando date, es hora de que lo integres al comando echo.
echo «Today’s date is: $(date +%D)»
Debes tener en cuenta que este comando está dentro de los paréntesis y el símbolo de dólar ($) está inmediatamente antes del primer paréntesis.
Formateo de texto con el comando echo de Linux
La opción –e, que es habilitar escapes de barra invertida te permite usar algunos caracteres con barra invertida para cambiar el diseño del texto. Estos son los caracteres con barra invertida que puedes usar para esto:
\a: Alerta, también conocida como BEL. Esto genera el sonido de alerta predeterminado.
\b: Escribe un carácter de retroceso.
\c: Abandona cualquier salida adicional.
\e: Escribe un carácter de escape.
\f: Escribe un carácter de fuente de formulario.
\n: Escribe una nueva línea.
\r: Escribe un retorno de carreta.
\t: Escribe una pestaña horizontal.
\v: Escribe una pestaña vertical.
\\: Escribe un carácter de barra diagonal inversa.
Escribir en archivos con el comando echo
Puedes redirigir la salida desde echo y crear archivos de texto o escribir en archivos de texto existentes. Si usaste el operador de redirección “>”, el archivo se crea si este no existe. Si el archivo de hecho existe, la salida de echo se agrega al comienzo de dicho archivo, sobrescribiendo cualquier contenido anterior que tenga almacenado.
Si utilizas 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 en cuestión.
echo «Creating a new file.» > sample.txt
echo «Adding to the file.» >> sample.txt
cat sample.txt
El primer comando crea un nuevo archivo y el texto se inserta en el mismo. El segundo comando agrega una línea de texto al final de dicho archivo. También, el comando cat muestra el contenido del archivo en la ventana del terminal.
Por supuesto, puedes incluir variables para agregar información útil a tu archivo. Si el archivo es de registro, es posible que quieras agregarle una marca de tiempo. Así que puedes hacerlo con el siguiente comando.
Debes tener en cuenta las comillas simples alrededor de los parámetros para el comando date. Evitan que el espacio entre los parámetros se interprete como el final de la lista de dichos parámetros. También aseguran que los parámetros se pasan a la fecha correctamente.
echo «Logfile started: $(date +’%D %T’)» > logfile.txt
cat logfile.txt
Tu archivo de registro se creó y el comando cat te mostrará que la fecha y la marca de tiempo se agregaron correctamente.