04. Bash: entrada y salida

Publicado por

La nota del día de hoy es realmente simple, ya que los comandos para la entrada (input) y salida (output) en Bash son muy sencillos y es posible que ya los conozcas. Así que esta nota es con la intención de recordarlos y nada más.

echo

Si lo que necesitas imprimir en la shell es sumamente sencillo, echo es la mejor opción. Este comando incluye el salto de línea.

$ echo "Hola mundo"

echo-hola-mundo

printf

En cambio, si lo que necesitas imprimir contiene más detalle entonces printf es la opción más adecuada. A diferencia de echo, printf no imprime el salto de línea, así que debe ser indicado.

$ saludo="Hola mundo"
$ printf "Hola, $saludo\n"

printf-variable

Si se hace este mismo ejemplo con echo:

$ echo "Hola, $saludo"

echo-variable

Si lo que se quiere es imprimir exactamente la cadena  “$saludo” y no el valor que contiene:

$ printf "Hola, \$saludo\n"
$ echo 'Hola, $saludo'

imprime-cadena

Nótese que con el printf se utilizó el símbolo backslash [\] y con echo se cambiaron las comillas dobles por simples [‘ ‘].

Hasta el momento todo parece indicar que lo que hace printf también se puede hacer sin problemas con echoy que, además, printf da un poco más de trabajo al tener que colocar los saltos de línea, sin embargo, printf brinda más opciones de formato para la salida. Por ejemplo:

$ echo "\tHola,\thola\tmundo"
$ printf "\tHola,\thola\tmundo\n"

formato-echo-printf

$ nombre=Miriam
$ edad=30
$ printf "Hola %s\n ¿en serio tienes %d años?\n" $nombre $edad
$ echo "Hola %s\n ¿en serio tienes %d años?\n" $nombre $edad

formatos

El comportamiento de estos comandos puede variar dependiendo de la distribución de GNU/Linux que se esté utilizando. Los ejemplos aquí expuestos son bajo distribuciones basadas en Debian.

read

Este comando sirve para leer datos de entrada desde el teclado. Por ejemplo:

#!/bin/bash

echo -n "Dame tu nombre: "
read nombre

if [ -n "$nombre" ]; then
echo "¡Hola $nombre! Bienvenido a codingornot.com"
exit 0
else
echo "¡Hola anónimo! Bienvenido a codingornot.com"
exit 1
fi

Ejecutamos el script:

$ sh leenombre

read-bash

Si quieres conocer más sobre estos comandos puedes revisar su manual en línea con:

$ man 1 echo
$ man 1 printf
$ man 1 read

Espero esta información te haya sido de utilidad, en la siguiente entrega te platicaré sobre Bash: control de flujo. Hasta la próxima.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *