スクリプトの でSIGSTOP CTRL+Zシグナルを取得しようとしていますtrap
。
スクリプトの実行中に一時的に実行を中断し、SIGSTOP シグナルCTRL+Zを送信すると、作成したファイルを削除して実行を強制終了する必要があります。
次のスクリプトが機能しない理由がわかりません。しかし、もっと重要なのは、それを行う正しい方法は何ですか?
#!/bin/bash
DIR="temp_folder"
trap "rm -r $DIR; kill -SIGINT $$" SIGSTP
if [ -d $DIR ]
then
rm -r $DIR
else
mkdir $DIR
fi
sleep 5
編集:
SIGSTOP
トラップすることはできませんが、トラップすることはできます。インターネットで検索したSIGTSTP
後に理解したことと、以下の回答から、 +で信号を送信するときにトラップするのは正しいです。ただし、スクリプトの実行中に+を押すと、スクリプトが停止します。つまり、後で送信するシグナルに関係なく、スクリプトが際限なく実行されます。
CTRLZCTRLZ