`read -t` no imprime mi entrada

`read -t` no imprime mi entrada

Yo uso el siguiente comando:

read -t 5 num

Sin embargo, ejecutando:

echo "$num"

no imprime el valor de num.

Respuesta1

La sintaxis correcta readse demuestra en este ejemplo:

$leer numero
10
$eco "$núm"
10

Respuesta2

reades unBash incorporadoFunción que lee una línea de la entrada estándar y la almacena en una variable. La sintaxis básica de reades:

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 varvariable, que luego podrá mostrar usando echo:

echo $var

La -tbandera que usa en su pregunta se usa para hacer readtiempo 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 $varno devolverá nada.

Probablemente haya entendido mal lo que sucede si simplemente escribe texto mientras readespera la entrada, tal vez pensando que el texto que escribió se usará como entrada cuando readse agote el tiempo de espera, por lo que se almacenará en la varvariable.

¡Pero este no es el caso! El texto sólo se almacenará varsi presionas Enter.

información relacionada