Índice

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 ...