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 var
variável, que você poderá exibir usando echo
:
echo $var
O -t
sinalizador que você usa na sua pergunta é usado para expirar read
o 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 $var
não retornará nada.
Você provavelmente não entendeu o que acontece se você apenas digitar um texto enquanto read
espera pela entrada, talvez pensando que o texto digitado será usado como entrada quando read
o tempo expirar, portanto, seria armazenado na var
variável.
Mas este não é o caso! O texto só será armazenado var
se você pressionar Enter.