4

スクリプトの で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ここに画像の説明を入力

4

2 に答える 2