
Bash コマンドを使用してウィンドウexit
からコマンドをトラップできますが、これはユーザーがターミナル ウィンドウに入力した場合にのみ機能します。ユーザーが代わりに閉じるボタンをクリックすると、トラップ終了ハンドラーは実行されません。gnome-terminal
trap
exit
背景情報:
ユーザーが閉じるボタンをクリックしたときに、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
各コマンドの後に履歴ファイルを保存することができます。このトリックは通常、複数のウィンドウの履歴を同期するために使用されますが、あなたのケースでも機能します。たとえば、この答え