Botão fechar armadilha gnome-terminal

3

Eu posso interceptar o comando exit de uma janela gnome-terminal usando o Bash trap comando, 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 clica 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 gnome-terminal, o histórico é salvo no arquivo fornecido), mas em alguns casos o histórico não é salvo, então estou procurando para alternativas para definir a variável de ambiente HISTFILE ..

    
por Håkon Hægland 05.10.2015 / 13:56

2 respostas

1

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
    
por kos 07.10.2015 / 04:29
1

Você pode salvar o arquivo de histórico depois de 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

    
por Ron Romero 07.10.2015 / 03:51