Las di­s­tri­bu­cio­nes de Linux te permiten instalar y dirigir el sistema por tu cuenta. El comando Echo de Bash es uno de los comandos más uti­li­za­dos. Se utiliza en los scripts de Bash y en los archivos por lotes para mostrar el texto de estado en un archivo o en tu pantalla. En este artículo te ex­pli­ca­mos cómo funciona el comando Echo de Linux y por ejemplo cómo usarlo para es­ta­ble­cer colores para la fuente y el fondo.

¿Qué es el comando Echo y cómo funciona?

El comando Echo de Linux repite lo que se le encarga que repita. La función es ex­tre­ma­da­me­n­te sencilla pero ab­so­lu­ta­me­n­te necesaria. Sin Echo, por ejemplo, no se mo­s­tra­rían vi­si­ble­me­n­te los scripts de Shell. Shell es la interfaz de usuario en la que pueden in­tro­du­ci­r­se los distintos comandos, como el comando Tail de Linux, el comando Head de Linux, el comando Cat de Linux o el comando Echo de Linux.

¿Cómo funciona exac­ta­me­n­te el comando Echo de Linux y qué aspecto tiene? He aquí la sintaxis general del comando:

echo [option] [string]

Por cierto, la fu­n­cio­na­li­dad básica de echo es la misma en todos los lenguajes de pro­gra­ma­ción: se introduce una entrada, que en la mayoría de los casos es en forma de cadena, y ésta se recibe y se muestra de nuevo sin cambios.

Nota

La interfaz de usuario o el in­té­r­pre­te de la línea de comandos Shell también se conoce como Bash-Shell. Bash es el Shell estándar en las di­s­tri­bu­cio­nes de Linux y la ventana de texto en la que se in­tro­du­cen los comandos. El programa echo es una parte fu­n­da­me­n­tal de Ubuntu y está prei­n­s­ta­la­do en todos los sistemas.

¿Cómo se muestra texto e in­fo­r­ma­ción en Linux con Echo?

En nuestro primer ejemplo mostramos un texto y el contenido de las variables en el Bash o terminal. Para escribir el texto “Esto es un ejemplo”, introduce el siguiente código en el terminal:

$ echo Esto es un ejemplo
Esto es un ejemplo

Para evitar errores más adelante, te re­co­me­n­da­mos que pongas el texto entre comillas:

$ echo “Esto es un ejemplo”
Esto es un ejemplo

En el siguiente paso, queremos mostrar una variable. Aquí basta con in­tro­du­cir el nombre de la variable, como PWD (de “print working directory” o imprimir di­re­c­to­rio de trabajo). El comando tendría entonces el siguiente aspecto:

$ echo $PWD 
/Users/Name/Desktop

También existe la po­si­bi­li­dad de combinar la vi­sua­li­za­ción de variable con texto, como en este ejemplo:

$ echo “Estás en el directorio: $PWD”
Estás en el directorio: /Users/Name/Desktop
Nota

Para mostrar in­fo­r­ma­ción, no solo está el comando Echo de Bash, también printf y tput. tput es la he­rra­mie­n­ta más compleja y también puede uti­li­zar­se para re­s­ta­ble­cer la in­fo­r­ma­ción. Sin embargo, printf y echo sólo pueden usarse para vi­sua­li­zar in­fo­r­ma­ción.

¿Qué ca­ra­c­te­res de control hay para echo?

Ya has entendido el principio básico del comando Echo de Linux, en el próximo paso apre­n­de­rás qué ca­ra­c­te­res de control puedes utilizar en co­m­bi­na­ción con el comando. Por carácter de control nos referimos a los ca­ra­c­te­res que no se ven di­re­c­ta­me­n­te en la pantalla sino que designan conceptos como el inicio o final del texto o el salto de línea.

Atención: Echo solo entiende a los ca­ra­c­te­res de control que colocan la opción -e. En el siguiente ejemplo, “\n” solo se reproduce como texto. (El carácter de control “\n” indica una línea nueva, o un salto de línea).

$ echo "\n" 
\n

Sin embargo, si añades una -e, como en el siguiente ejemplo, se producirá en tu texto un salto de texto:

$ echo -e "\n"
Nota

El comando Echo suele terminar con un salto de texto. Para su­pri­mi­r­lo, puedes in­tro­du­cir el carácter de control \c al final de la salida co­rre­s­po­n­die­n­te.

He aquí un resumen de los ca­ra­c­te­res de control a los que puedes acceder con tu Bash:

Códigos escape Si­g­ni­fi­ca­do
\a Sonido de alerta
\b Re­tro­ce­der
\c Suprimir salto de texto
\f Atrás
\n Salto de línea
\r Volver al inicio de línea
\t Tabulador (ho­ri­zo­n­tal)
\v Tabulador (vertical)
\\ Ver carácter de barra invertida
\0nnn Ca­ra­c­te­res ASCII en forma octal (solo sh y ksk)
\nnn Ca­ra­c­te­res ASCII en forma octal (solo Bash)

¿Cómo se de­te­r­mi­nan los colores de la fuente y del fondo con echo?

Con el comando Echo de Linux, también se pueden de­te­r­mi­nar las ca­ra­c­te­rí­s­ti­cas del texto, como los colores de la fuente y el fondo, en la vi­sua­li­za­ción del texto. Esto se consigue en­tre­co­mi­lla­n­do todos los ca­ra­c­te­res o es­cri­bie­n­do los colores en variables para que la cadena sea más legible. La primera variante tiene el siguiente aspecto (siempre se introduce un color con \033[, 31m aquí re­pre­se­n­ta el color de fuente rojo):

$ echo -e "\033[31mEsto es un texto rojo"

Ahora, para re­es­ta­ble­cer todos los atributos, introduce la siguiente cadena:

$ echo -e "\033[0m"

No obstante, es más legible si definimos los colores pre­via­me­n­te como variable en el script de Bash:

red='\033[31m'
reset='\033[0m'

Entonces, puedes accionar los colores si­m­ple­me­n­te con el comando Echo:

$ echo -e "${red}Esto es un texto rojo.${reset}Y ahora el texto vuelve a ser normal."

A co­n­ti­nua­ción resumimos los distintos códigos escape para los diversos colores de fuente y fondo:

Carácter de control Si­g­ni­fi­ca­do
\033[30m Color de fuente negro
\033[31m Color de fuente rojo
\033[32m Color de fuente verde
\033[33m Color de fuente amarillo
\033[34m Color de fuente azul
\033[35m Color de fuente magenta
\033[36m Color de fuente turquesa
\033[37m Color de fuente blanco
\033[40m Color de fondo negro
\033[41m Color de fondo rojo
\033[42m Color de fondo verde
\033[43m Color de fondo amarillo
\033[44m Color de fondo azul
\033[45m Color de fondo magenta
\033[46m Color de fondo turquesa
\033[47m Color de fondo gris

¿Cómo se es­ta­ble­cen las distintas pro­pie­da­des de texto?

Además del color de la fuente y del fondo, con el comando de Linux Echo también pueden de­te­r­mi­nar­se otras ca­ra­c­te­rí­s­ti­cas del texto como la negrita o el subrayado. He aquí los códigos de distintas pro­pie­da­des de texto:

Ca­ra­c­te­res de control Si­g­ni­fi­ca­do
\033[0m Restaurar todas las ca­ra­c­te­rí­s­ti­cas
\033[1m Negrita
\033[4m Subrayado
\033[5m Parpadeo
\033[7m Pantalla inversa

Si quieres escribir el texto rojo en negrita, utiliza el siguiente código:

$ echo -e "\033[1;31mEsto es un texto rojo en negrita."
Consejo

Hemos re­co­pi­la­do en un documento general todos los comandos im­po­r­ta­n­tes de Linux.

Ir al menú principal