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 Bash echo-hola-mundo](https://codingornot.files.wordpress.com/2016/09/echo-hola-mundo.png)
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 en Bash printf-variable](https://codingornot.files.wordpress.com/2016/09/printf-variable.png)
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
![formatos de impresión en Bash formatos](https://codingornot.files.wordpress.com/2016/09/formatos.png?w=646)
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
![read en bash read-bash](https://codingornot.files.wordpress.com/2016/09/read-bash.png?w=646)
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.