El echo
comando es perfecto para escribir texto formateado en la ventana del terminal. Y no tiene por qué ser texto estático. Puede incluir variables de shell, nombres de archivos y directorios. También puede redirigir el eco para crear archivos de texto y archivos de registro. Siga esta sencilla guía para descubrir cómo.
Echo repite lo que le dices que repita
A Zeus le gustaba dejar el monte Olimpo para unirse con hermosas ninfas. En un viaje, le dijo a una ninfa de la montaña llamada Echo que acechara 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 en conversación. Finalmente, Hera perdió los estribos y maldijo al pobre Echo para que solo repitiera las últimas palabras que alguien más había dicho. Lo que Hera le hizo a Zeus cuando lo alcanzó es una incógnita.
Y eso, básicamente, es echo
mucho en la vida. Repite lo que se le ha dicho que repita . Esa es una función simple, pero vital. Sin echo
, no podríamos obtener resultados visibles de los scripts de shell, por ejemplo.
Si bien no está cargado de una multitud de campanas y silbatos, es muy probable que echo
tenga algunas capacidades que no conocía o que había olvidado.
¿eco? ¡eco!
La mayoría de los sistemas Linux ofrecen dos versiones de echo
. El shell Bash tiene el suyo echo
incorporado, y también hay una versión ejecutable binaria echo
.
Podemos ver las dos versiones diferentes usando los siguientes comandos:
tipo eco
¿Dónde está el eco?
El type
comando nos dice si el comando que le pasamos como argumento es un intérprete de comandos incorporado, un ejecutable binario, un alias o una función. Nos informa que echo
es un shell incorporado.
Tan pronto como ha encontrado una respuesta, type
deja de buscar más coincidencias. Por lo tanto, no nos dice si hay otros comandos con el mismo nombre presentes en el sistema. Pero sí nos dice cuál encuentra primero. Y ese es el que se utilizará de forma predeterminada cuando emitamos ese comando.
El whereis
comando busca el ejecutable binario, el código fuente y la página de manual del comando que le pasamos como parámetro de la línea de comandos . No busca elementos internos de shell porque no tienen un ejecutable binario separado. Son una parte integral del ejecutable Bash.
El whereis
comando informa que echo
es un ejecutable binario ubicado en el /bin
directorio.
Para usar esa versión de echo
, necesitaría llamarla explícitamente proporcionando la ruta al ejecutable en la línea de comando:
/ bin / echo --version
El shell incorporado no sabe cuál es el --version
argumento de la línea de comandos, simplemente lo repite en la ventana del terminal:
echo --version
Todos los ejemplos que se muestran aquí usan la versión predeterminada de echo
, en el shell Bash.
Escribir texto en la terminal
Para escribir una simple cadena de texto en la ventana de la terminal, escriba echo
y la cadena que desea que se muestre:
echo Mi nombre es Dave.
El texto se nos repite. Pero a medida que experimente, pronto descubrirá que las cosas pueden complicarse un poco más. Mira este ejemplo:
echo Mi nombre es Dave y soy un geek.
La ventana de la terminal muestra un >
cartel y se sienta allí, esperando. Ctrl + C lo regresará al símbolo del sistema. ¿Que paso ahi?
La comilla simple o el apóstrofo en la palabra «Estoy» confuso echo
. Interpretó esa comilla simple como el comienzo de una sección de texto citada. Debido a que no detectó una sola comilla de cierre, echo
estaba esperando más información. Esperaba que la entrada adicional incluyera la comilla simple que faltaba que estaba esperando.
Para incluir una comilla simple en una cadena, la solución más simple es envolver toda la cadena entre comillas dobles:
echo "Mi nombre es Dave y soy un geek".
Poner el texto entre comillas dobles es un buen consejo general. En los scripts, delimita claramente los parámetros a los que está pasando echo
. Esto facilita la lectura y la depuración de los scripts.
¿Qué sucede si desea incluir un carácter de comillas dobles en su cadena de texto? Eso es fácil, simplemente coloque una barra invertida \
delante de las comillas dobles (sin espacios entre ellas).
echo "Mi nombre es Dave y soy un \" geek \ """"