Я могу захватить exit
команда от a gnome-terminal
окно с помощью Bash trap
команда, но это только работает, если пользователь вводит exit
в окне терминала. Если пользователь нажимает близкую кнопку вместо этого, обработчик выходов прерывания не выполняется.
Справочная информация: Я хотел бы сохранить историю Bash в пользовательский файл истории, когда пользователь нажимает близкую кнопку. Я использовал export HISTFILE=/tmp/custom.hist
, это работает во многих случаях (когда пользователь нажимает близкую кнопку в терминале гнома, история сохраняется в данный файл), но в некоторых случаях история не сохраняется, таким образом, я ищу альтернативы установке HISTFILE
переменная среды..
Вы хотите захватить SIGHUP;
От man 7 signal
:
SIGHUP 1 Term Hangup detected on controlling terminal or death of controlling process
Таким образом захватывать и SIGHUP и ВЫХОД:
trap 'export HISTFILE=/tmp/custom.hist' 1 EXIT
или:
trap 'export HISTFILE=/tmp/custom.hist' SIGHUP EXIT
Вы могли сохранить файл истории после каждой команды. Этот прием обычно используется для синхронизации истории для нескольких окон, но работал бы в случае. Посмотрите, например, этот ответ