プロセスが終了するタイミング(何よりも)を追跡し、一時ファイルを削除するトラップを作成する必要があります。私はより良いコードを読みやすくするために数値の代わりにsigspecを使用することを好みます。関連スニペットは次のとおりです。
trap 'rm "$temp"' 0 SIGHUP SIGTERM
sigspecは、またはで0
なければなりませんか?exit
EXIT
SIGEXIT
ベストアンサー1
シェルコマンド言語、トラップPOSIX仕様を読む
条件は、EXIT、0(EXITと同じ)、または次のようなSIGプレフィックスなしでシンボル名を使用して指定された信号にすることができます。<シグナル.h>XBDヘッダーで定義されているヘッダー(HUP、INT、QUIT、TERMなど)の実装では、SIGプレフィックスの付いた名前を許可したり、シグナル名の大文字の使用を拡張子として無視したりできます。 SIGKILL または SIGSTOP のトラップを設定すると、未定義の結果が発生します。
吹く許容信号には SIG というプレフィックスが付いています。
シグナル名は大文字と小文字を区別せず、SIGプレフィックスはオプションです。 sigspecがEXIT(0)の場合、シェルを終了するとargコマンドが実行されます。
しかし、EXIT信号がないため(man 7 signal
または<シグナル.h>) BashでもSIGEXITを使用できません。