バルクタイムアウトの代替?

バルクタイムアウトの代替?

私に必要なのは、キーを押してスキップできる80秒の睡眠です。残り時間を確認できる点がメリットになります。

ベストアンサー1

より簡単な方法は

read -t 80 -n 1 -s -p "Hit a key to continue"

しかし、残り時間は見られません。残り時間を表示するには、サブシェルを含むより複雑なスクリプトを使用できます。

( for i in {80..0}; do
    echo Wait for $i seconds or press any key;
    sleep 1;
  done )&
read -t 80 -n 1 -s; kill $!

議論の余地がありますが、このkillコマンドはやや安全ではありません。ただし、サブシェルがスリープモードに失敗して早期に終了し、無実のプロセスがそのPIDを再利用して終了する可能性はほとんどありません。

おすすめ記事