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.
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"
Si se hace este mismo ejemplo con echo
:
Si lo que se quiere es imprimir exactamente la cadena “$saludo” y no el valor que contiene:
$ printf "Hola, \$saludo\n"
$ echo 'Hola, $saludo'
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 echo
y 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"
$ 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
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
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.