ユーザーがキーを押すまで実行を一時停止したい Bash シェル スクリプトがあります。DOS では、これは コマンドで簡単に実行できますpause
。スクリプトで使用できる Linux の同等の機能はありますか?
ベストアンサー1
read
これは次のようになります:
user@host:~$ read -n1 -r -p "Press any key to continue..." key
[...]
user@host:~$
は-n1
、1 文字だけを待機することを指定します。 は-r
、raw モードに設定します。これは、バックスラッシュなどを押した場合、次のキーを押すまで登録されないため必要です。 は-p
プロンプトを指定します。プロンプトにスペースが含まれている場合は、プロンプトを引用符で囲む必要があります。key
引数は、どのキーが押されたかを確認したい場合にのみ必要です。その場合は、 を通じてアクセスできます$key
。
Bash を使用している場合は、 を使用してタイムアウトを指定することもできます-t
。これにより、キーが押されなかった場合に read が失敗を返します。たとえば、次のようになります。
read -t5 -n1 -r -p 'Press any key in the next five seconds...' key
if [ "$?" -eq "0" ]; then
echo 'A key was pressed.'
else
echo 'No key was pressed.'
fi