Ich verwende den folgenden Befehl:
read -t 5 num
Beim Ausführen von:
echo "$num"
druckt den Wert von nicht num
.
Antwort1
Die korrekte Syntax für read
wird durch dieses Beispiel veranschaulicht:
$Nummer lesen 10 $echo "$num" 10
Antwort2
read
ist einBash integriertFunktion, die eine Zeile von der Standardeingabe liest und in einer Variablen speichert. Die grundlegende Syntax read
lautet:
read var
Wenn Sie dies ausführen, wartet die Eingabeaufforderung auf Ihre Texteingabe, bis Sie drücken Enter. Nach dem Drücken wird der Text in der Variable Entergespeichert , die Sie dann mit anzeigen können :var
echo
echo $var
Das -t
Flag, das Sie in Ihrer Frage verwenden, dient dazu, read
eine Zeitüberschreitung nach Ablauf der angegebenen Zeit (in Sekunden) zu bewirken. Wenn die angegebene Zeit abgelaufen ist und Sie keinen Text eingegeben und gedrückt haben Enter, echo $var
wird nichts zurückgegeben.
Sie haben wahrscheinlich falsch verstanden, was passiert, wenn Sie einfach Text eingeben, während read
auf die Eingabe gewartet wird. Vielleicht haben Sie gedacht, dass der eingegebene Text nach Ablauf der Zeit als Eingabe verwendet und daher in der Variablen read
gespeichert wird .var
Dies ist aber nicht der Fall! Der Text wird nur dann gespeichert, var
wenn Sie drücken Enter.