Comando read para Linux
Con el comando read de Linux podemos leer la entrada de un usuario desde la terminal y asignarla a una variable. También podemos leer la entrada de un archivo.
Se suele usar en las aplicaciones para leer datos de entrada o almacenados en un archivo y disponer de ellos en variables.
read [opciones] variable
En este scritp.sh vamos a ver lo sencillo que resulta interactuar con el usuario solicitándole que introduzca su edad. Guardaremos en la variable edad el valor que introduzca desde teclado el usuario.
En el ejemplo gracias a la estructura if mostraremos un mensaje indicando si es mayor o menor de edad.
#!/bin/bash
echo "Ingresa tu edad:"
read edad
if [ $edad -lt 18 ];
then
echo "Menor de edad"
else
echo "Mayor de edad"
fi

También podemos almacenar el contenido de un fichero en una variable.
Para el siguiente ejemplo almacenaremos lo que contenga el fichero hola.txt en la variable contenido y la mostraremos en pantalla.
#!/bin/bash
while read linea
do
echo $linea
done < hola.txt
Opciones con read en Linux
La mejor forma de dar potencia a nuestros comandos de Linux es hacer uso de las opciones disponibles para cada comando. Recuerda que puedes ver las opciones del comando read escribiendo en la terminal man read.
- -p: muestra un mensaje personalizado antes de leer la entrada del usuario.
- -r: evita que las barras diagonales se interpreten como caracteres de escape.
- -a: almacena la entrada en un array.
- -t: establece un tiempo límite para la entrada.
- -n: define el número máximo de caracteres que se leen.
En el siguiente ejemplo haremos uso de varias opciones para ver su funcionamiento y la potencia que añaden al comando read de Linux.
- Tiempo máximo para introducir datos de 10 segundos.
- Número máximo de caracteres 20.
- Nos mostrará el mensaje de «Introduce: «
#!/bin/bash
read -t 10 -n 20 -p "Introduce: " nombre
echo "Has introducido: $nombre"