1. ホーム
  2. linux

[解決済み】LinuxのDOSポーズに相当するものは何ですか?

2022-04-02 10:42:16

質問

Bashシェルスクリプトで、ユーザーがキーを押すまで実行を一時停止させたいと思っています。DOSの場合、これは pause コマンドを使用します。私のスクリプトで使用できる同等のLinuxはありますか?

どのように解決するのですか?

read がこれを行います。

user@host:~$ read -n1 -r -p "Press any key to continue..." key
[...]
user@host:~$ 

-n1 は1文字しか待たないことを指定します。また -r そうしないと、バックスラッシュのようなキーを押したときに、次のキーを押すまで登録されないからです。 また -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