gnome-terminal の閉じるボタンをトラップする

gnome-terminal の閉じるボタンをトラップする

Bash コマンドを使用してウィンドウexitからコマンドをトラップできますが、これはユーザーがターミナル ウィンドウに入力した場合にのみ機能します。ユーザーが代わりに閉じるボタンをクリックすると、トラップ終了ハンドラーは実行されません。gnome-terminaltrapexit

背景情報: ユーザーが閉じるボタンをクリックしたときに、Bash の履歴をカスタム履歴ファイルに保存したいと思います。 を使用しましたがexport HISTFILE=/tmp/custom.hist、これは多くの場合機能します (ユーザーが gnome-terminal で閉じるボタンをクリックすると、履歴が指定されたファイルに保存されます)。ただし、履歴が保存されない場合もあるため、HISTFILE環境変数を設定する代わりになる方法を探しています。

答え1

SIGHUP をトラップしたい場合;

からman 7 signal

SIGHUP        1       Term    Hangup detected on controlling terminal or death of controlling process

したがって、SIGHUP と EXIT の両方をトラップするには、次のようにします。

trap 'export HISTFILE=/tmp/custom.hist' 1 EXIT

または:

trap 'export HISTFILE=/tmp/custom.hist' SIGHUP EXIT

答え2

各コマンドの後に履歴ファイルを保存することができます。このトリックは通常、複数のウィンドウの履歴を同期するために使用されますが、あなたのケースでも機能します。たとえば、この答え

関連情報