Yo uso el siguiente comando:
read -t 5 num
Sin embargo, ejecutando:
echo "$num"
no imprime el valor de num
.
Respuesta1
La sintaxis correcta read
se demuestra en este ejemplo:
$leer numero 10 $eco "$núm" 10
Respuesta2
read
es unBash incorporadoFunción que lee una línea de la entrada estándar y la almacena en una variable. La sintaxis básica de read
es:
read var
Si ejecuta esto, el mensaje esperará a que ingrese texto hasta que presione Enter. Después de presionar Enter, el texto se guardará en la var
variable, que luego podrá mostrar usando echo
:
echo $var
La -t
bandera que usa en su pregunta se usa para hacer read
tiempo de espera después de que haya pasado el tiempo especificado (en segundos). Si ha pasado la cantidad de tiempo especificada y no ha ingresado texto ni presionado Enter, echo $var
no devolverá nada.
Probablemente haya entendido mal lo que sucede si simplemente escribe texto mientras read
espera la entrada, tal vez pensando que el texto que escribió se usará como entrada cuando read
se agote el tiempo de espera, por lo que se almacenará en la var
variable.
¡Pero este no es el caso! El texto sólo se almacenará var
si presionas Enter.