Trap-Gnome-Terminal-Schließen-Schaltfläche

Trap-Gnome-Terminal-Schließen-Schaltfläche

Ich kann den exitBefehl aus einem gnome-terminalFenster mit dem Bash- trapBefehl abfangen, aber das funktioniert nur, wenn der Benutzer exitim Terminalfenster eingibt. Wenn der Benutzer stattdessen auf die Schaltfläche „Schließen“ klickt, wird der Trap-Exit-Handler nicht ausgeführt.

Hintergrundinformation: Ich möchte den Bash-Verlauf in einer benutzerdefinierten Verlaufsdatei speichern, wenn der Benutzer auf die Schaltfläche „Schließen“ klickt. Ich habe verwendet export HISTFILE=/tmp/custom.hist, dies funktioniert in vielen Fällen (wenn der Benutzer im Gnome-Terminal auf die Schaltfläche „Schließen“ klickt, wird der Verlauf in der angegebenen Datei gespeichert), aber in einigen Fällen wird der Verlauf nicht gespeichert, daher suche ich nach Alternativen zum Festlegen der HISTFILEUmgebungsvariable.

Antwort1

Sie möchten SIGHUP abfangen;

Aus man 7 signal:

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

Um sowohl SIGHUP als auch EXIT abzufangen:

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

oder:

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

Antwort2

Sie könnten die Verlaufsdatei nach jedem Befehl speichern. Dieser Trick wird normalerweise verwendet, um den Verlauf für mehrere Fenster zu synchronisieren, würde aber in Ihrem Fall funktionieren. Siehe zum Beispiel:diese Antwort

verwandte Informationen