$$
特殊変数がシェルのプロセス番号を保持していることがわかった後、単にシェルを終了しようとしましたが、うまくいきませんkill <pid obtained by echo $$>
でした。また、いくつかのバリエーションを試しましたが、効果がありませんでした。
答え1
Bashのマニュアルをチェックしてください:
Bashがインタラクティブの場合、トラップなしでSIGTERMを無視します。
https://www.gnu.org/software/bash/manual/bashref.html#Signals
kill
ヘルプテキストを確認してください(help kill
bashプロンプトで):
SIGSPEC と SIGNUM の両方がない場合、SIGTERM と見なされます。
https://www.gnu.org/software/bash/manual/bashref.html#index-kill
答え2
あなたはできますが、それが必要であるかどうかは絶対に確信していない限り、シェルは死なないようにします。
SIGHUPが機能します(SIGKILLと同じ)。次のことを試すことができます。
kill -HUP $$
(必要に応じてHUP
これを数値信号識別子に置き換えることができます1
。)
これが機能するのSIGHUP
は、モデムのシリアル回線接続が終了したとき(電話回線が切断された場合など)が送信される信号であるためです。