次のコマンドを使用します。
read -t 5 num
ただし、実行中:
echo "$num"
の値が印刷されませんnum
。
答え1
の正しい構文はread
次の例で示されています。
$読み取り番号 10 $エコー「$num」 10
答え2
read
はBash組み込み標準入力から行を読み取り、それを変数に格納する関数。 の基本的な構文は次のread
とおりです。
read var
これを実行すると、 を押すまでプロンプトはテキストの入力を待機しますEnter。 を押すとEnter、テキストは変数に保存されvar
、 を使用して表示できるようになりますecho
。
echo $var
-t
質問で使用したフラグは、指定された時間 (秒単位) が経過した後にタイムアウトにするために使用されます。read
指定された時間が経過してもテキストを入力せずに を押した場合はEnter、echo $var
何も返されません。
おそらく、入力を待っている間にテキストを入力した場合、何が起こるかを誤解しているのでしょう。read
おそらく、入力したテキストはタイムアウト時に入力として使用されread
、変数に格納されると考えているのでしょうvar
。
しかし、そうではありません。テキストvar
は を押した場合にのみ に保存されますEnter。