Comando read
El comando read interrumpe la ejecución del shell hasta que el usuario introduzca una cadena de caracteres (aunque sea vacía) en su entrada estándar.
Las palabras que componen la cadena de caracteres escrita por el usuario se asignan a las variables cuyos nombres se pasan como argumentos al comando read:
[javier]$ read a b c
1 2 3
[javier]$ echo $a ; echo $b ; echo $c
1
2
3
Si hay más palabras que variables, la última variable contendrá el fin de la cadena de caracteres. En el caso inverso, las variables suplementarias serán nulas:
[javier]$ read a b c
1 2 3 4
[javier]$ echo $a ; echo $b ; echo $c
1
2
3 4
[javier]$ read a b c
1 2
[javier]$ echo $a ; echo $b ; echo $c
1
2
Si se llama al comando read sin argumentos, la respuesta del usuario se asigna a la variable de entorno $REPLY:
[javier]$ read
respuesta del usuario
[javier]$ echo $REPLY
respuesta del usuario
Se puede hacer que la entrada de una frase esté precedida por la opción -p (prompt) del comando read:
[javier]$ read -p "¿edad del capitán? " edad
¿edad del capitán? 12
[javier]$ echo $edad
12
Este comando se utiliza generalmente en los scripts interactivos; veamos un ejemplo de programa que pide la intervención del usuario:
[javier]$ cat prog.sh
#!/bin/bash
# Se pide al usuario que escriba un nombre de archivo
read -p "escriba un nombre...