
Я могу перехватить 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
Вы можете сохранять файл истории после каждой команды. Этот трюк обычно используется для синхронизации истории для нескольких окон, но сработает и в вашем случае. Смотрите, например,этот ответ