Posso interceptar o exit
comando de uma gnome-terminal
janela usando o comando Bash trap
, mas só funciona se o usuário digitar exit
na janela do terminal. Se o usuário clicar no botão Fechar, o manipulador de saída de trap não será executado.
Informações básicas:
Gostaria de salvar o histórico do Bash em um arquivo de histórico personalizado quando o usuário clicar no botão Fechar. Eu usei export HISTFILE=/tmp/custom.hist
, isso funciona em muitos casos (quando o usuário clica no botão Fechar no terminal gnome, o histórico é salvo no arquivo fornecido), mas em alguns casos o histórico não é salvo, então estou procurando alternativas para definindo a HISTFILE
variável de ambiente.
Responder1
Você quer capturar o SIGHUP;
De man 7 signal
:
SIGHUP 1 Term Hangup detected on controlling terminal or death of controlling process
Então, para capturar SIGHUP e EXIT:
trap 'export HISTFILE=/tmp/custom.hist' 1 EXIT
ou:
trap 'export HISTFILE=/tmp/custom.hist' SIGHUP EXIT
Responder2
Você pode salvar o arquivo de histórico após cada comando. Esse truque geralmente é usado para sincronizar o histórico de várias janelas, mas funcionaria no seu caso. Veja, por exemplo,esta resposta