Ctrl私のスクリプトは+キーで終了できませんC。これは間違いです。
Ctrl+で終了するようにスクリプトを変更する方法を説明してくださいC。
#!/bin/bash
while true; do
paplay /usr/share/sounds/phone.wav
done
ベストアンサー1
親シェルからSIGINTをキャプチャしてシェルを終了すると、paplayも閉じます。
trap exit SIGINT;
while true; do paplay /usr/share/sounds/phone.wav ; done
paplay
INT信号をブロックしてそれに影響を与えると、親シェルがデフォルトハンドラを実行できなくなるように見えます。
親シェルにハンドラをインストールし、そこからハンドラをリセットして信号を再生成すると、より良い方法で問題を解決できます。
trap 'trap - SIGINT; kill -SIGINT $$' SIGINT;
while :; do paplay /usr/share/sounds/linuxmint-login.wav ; done
(このexit
方法では、実行プログラムプロセスは子プロセスが自動的に終了したと思いますが、2番目の方法ではスクリプトが終了したようです。SIGINT
)