Header Ads Widget

Ticker

6/recent/ticker-posts

Cómo usar el comando Echo en Linux

 

Una ventana de terminal de Linux en un escritorio con temática de Ubuntu.

El echocomando 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 echomucho en la vida. Repite lo que se le ha dicho que repitaEsa 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 echotenga algunas capacidades que no conocía o que había olvidado.

¿eco? ¡eco!

La mayoría de los sistemas Linux ofrecen dos versiones de echoEl shell Bash tiene el suyo echoincorporado, 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 typecomando 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 echoes un shell incorporado.

Tan pronto como ha encontrado una respuesta, typedeja 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 whereiscomando 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 elementos internos de shell porque no tienen un ejecutable binario separado. Son una parte integral del ejecutable Bash.

El whereiscomando informa que echoes un ejecutable binario ubicado en el /bindirectorio.

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 --versionargumento 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 echoy 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 echoInterpretó esa comilla simple como el comienzo de una sección de texto citada. Debido a que no detectó una sola comilla de cierre,  echoestaba 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 echoEsto 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 \ ""

Esto envuelve la palabra "geek" entre comillas dobles para nosotros. Veremos más de estos personajes escapados con barra invertida en breve.

Usar variables con eco

Hasta ahora, hemos estado escribiendo texto predefinido en la ventana de la terminal. Podemos usar variables con echopara producir una salida que sea más dinámica y que tenga valores insertados en ella por el shell. Podemos definir una variable simple con este comando:

my_name = "Dave"

Se my_nameha creado una variable llamada Se le ha asignado el valor del texto "Dave". Podemos usar el nombre de la variable en las cadenas a las que pasamos echo , y el valor de la variable se escribirá en la ventana del terminal. Debe poner un signo de dólar $delante del nombre de la variable para indicar echoque es una variable.

Hay una salvedad. Si ha envuelto su cadena entre comillas simples echo , tratará todo literalmente. Para que se muestre el valor de la variable y no el nombre de la variable, utilice comillas dobles.

echo 'Mi nombre es $ my_name'
echo "Mi nombre es $ my_name"

Con bastante acierto, vale la pena repetirlo:

  • El uso de un solo comillas resultados en el texto que se escribe en la ventana de terminal en un literal de la moda.
  • El uso de  comillas dobles da como resultado que la variable se interprete, también llamada expansión de variable, y el valor se escribe en la ventana de terminal.

Usar comandos con echo

Podemos usar un comando con echoe incorporar su salida en la cadena que se escribe en la ventana de terminal. Debemos usar el signo de dólar $como si el comando fuera una variable y envolver todo el comando entre paréntesis.

Usaremos el comando de fechaUn consejo es usar el comando por sí solo antes de comenzar a usarlo con echoDe esa manera, si hay algún problema con la sintaxis de su comando, lo identifica y lo corrige antes de incluirlo en el echocomando. Luego, si el echocomando no hace lo que espera, sabrá que el problema debe estar en la echosintaxis porque ya ha probado la sintaxis del comando.

Entonces, intente esto en la ventana de la terminal:

fecha +% D

Y, satisfechos de que estamos obteniendo lo que esperamos del comando date, lo integraremos en un echocomando:

echo "La fecha de hoy es: $ (fecha +% D)"

Tenga en cuenta que el comando está entre paréntesis y el signo de dólar $ está inmediatamente antes del primer paréntesis.

Formatear texto con eco

La -eopción (habilitar escapes de barra invertida) nos permite usar algunos caracteres de escape con barra invertida para cambiar el diseño del texto. Estos son los caracteres de escape con barra invertida que podemos usar:

  • \ a : Alerta (históricamente 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 avance de formulario.
  • \ n : Escribe una nueva línea.
  • \ r : escribe un retorno de carro.
  • \ t : escribe una pestaña horizontal.
  • \ v : escribe una pestaña vertical.
  • \\ : Escribe un carácter de barra invertida.

Usemos algunos de ellos y veamos qué hacen.

echo -e "Esta es una línea larga de texto \ ndividida en tres líneas \ ncon \ ttabs \ ton \ tthe \ tthird \ tline"

El texto se divide en una nueva línea donde hemos utilizado los \ncaracteres y se inserta una pestaña donde hemos utilizado los \tcaracteres.

echo -e "Aquí \ vare \ vvertical \ vtabs"

Al igual que los \ncaracteres de nueva línea, una pestaña vertical \vmueve el texto a la línea de abajo. Pero, a diferencia de los  \n caracteres de nueva línea, la \vpestaña vertical no inicia la nueva línea en la columna cero. Utiliza la columna actual.

Los \bcaracteres de retroceso mueven el cursor un carácter hacia atrás. Si hay más texto para escribir en la terminal, ese texto sobrescribirá el carácter anterior.

echo -e "123 \ b4"

El "3" está sobreescrito por el "4".

El \rcarácter de retorno de carro hace  echoque regrese al inicio de la línea actual y escriba cualquier texto adicional desde la columna cero.

echo -e "123 \ r456"

Los caracteres "123" se sobrescriben con los caracteres "456".

El \acarácter de alerta producirá un "pitido" audible. Utiliza el sonido de alerta predeterminado para su tema actual.

echo -e "Haz un pitido \ a"

La -nopción (sin nueva línea) no es una secuencia de escape con barra invertida, pero sí afecta la estética del diseño del texto, así que lo discutiremos aquí. Evita echoagregar una nueva línea al final del texto. El símbolo del sistema aparece directamente después del texto que se escribe en la ventana del terminal.

echo -n "sin nueva línea final"

Usar echo con archivos y directorios

Puede utilizarlo echocomo una especie de versión de pobre lsSus opciones son pocas y distantes entre sí cuando usa echoasí. Si necesita cualquier tipo de fidelidad o de control fino, que es mejor usar lssu legión de opciones.

Este comando enumera todos los archivos y directorios en el directorio actual:

eco *

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

Si. Esto no juega con echolas fortalezas de To. Utilice ls.

Escribir en archivos con echo

Podemos redirigir la salida echoy crear archivos de texto o escribir en archivos de texto existentes.

Si usamos el >operador de redirección, se crea el archivo si no existe. Si el archivo existe, la salida de echose agrega al inicio del archivo, sobrescribiendo cualquier contenido anterior.

Si usamos el >>operador de redirección, se crea el archivo si no existe. La salida de echose agrega al final del archivo y no sobrescribe ningún contenido existente del archivo.

echo "Creando un nuevo archivo". > sample.txt
echo "Añadiendo al archivo". >> sample.txt
cat sample.txt

El primer comando crea un nuevo archivo y se inserta texto en él. El segundo comando agrega una línea de texto al final del archivo. El catcomando 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 deseemos agregarle una marca de tiempo. Podemos hacer eso con el siguiente comando.

Tenga en cuenta las comillas simples alrededor de los parámetros del datecomando. Evitan que el espacio entre los parámetros se interprete como el final de la lista de parámetros. Aseguran que los parámetros se pasen  date correctamente.

echo "Archivo de registro iniciado: $ (fecha + '% D% T')"> archivo de registro.txt
cat logfile.txt

Nuestro archivo de registro se crea para nosotros y nos catmuestra que tanto la marca de fecha como la marca de tiempo se le agregaron.

Ese es el repertorio de echo

Un comando sencillo, pero indispensable. Si no existiera, tendríamos que inventarlo.

Las travesuras de Zeus hicieron algo bien, después de todo.

Publicar un comentario

0 Comentarios