`read -t` não está imprimindo minha entrada

`read -t` não está imprimindo minha entrada

Eu uso o seguinte comando:

read -t 5 num

No entanto, executando:

echo "$num"

não está imprimindo o valor de num.

Responder1

A sintaxe correta para readé demonstrada por este exemplo:

$leia num
10
$eco "$num"
10

Responder2

readé umBash integradofunção que lê uma linha da entrada padrão e a armazena em uma variável. A sintaxe básica de readé:

read var

Se você executar isso, o prompt esperará que você insira o texto até você pressionar Enter. Após pressionar Enter, o texto será salvo na varvariável, que você poderá exibir usando echo:

echo $var

O -tsinalizador que você usa na sua pergunta é usado para expirar reado tempo limite após o tempo especificado (em segundos). Se o tempo especificado tiver passado e você não tiver inserido o texto e pressionado Enter, echo $varnão retornará nada.

Você provavelmente não entendeu o que acontece se você apenas digitar um texto enquanto readespera pela entrada, talvez pensando que o texto digitado será usado como entrada quando reado tempo expirar, portanto, seria armazenado na varvariável.

Mas este não é o caso! O texto só será armazenado varse você pressionar Enter.

informação relacionada