Кнопка закрытия ловушки gnome-terminal

Кнопка закрытия ловушки gnome-terminal

Я могу перехватить exitкоманду из gnome-terminalокна с помощью команды Bash 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

Вы можете сохранять файл истории после каждой команды. Этот трюк обычно используется для синхронизации истории для нескольких окон, но сработает и в вашем случае. Смотрите, например,этот ответ

Связанный контент