
Puedo capturar el exit
comando desde una gnome-terminal
ventana usando el comando Bash trap
, pero solo funciona si el usuario escribe exit
en la ventana del terminal. Si el usuario hace clic en el botón cerrar, el controlador de salida de trampa no se ejecuta.
Información de contexto:
Me gustaría guardar el historial de Bash en un archivo de historial personalizado cuando el usuario hace clic en el botón cerrar. He usado export HISTFILE=/tmp/custom.hist
, esto funciona en muchos casos (cuando el usuario hace clic en el botón cerrar en gnome-terminal, el historial se guarda en el archivo dado), pero en algunos casos el historial no se guarda, así que estoy buscando alternativas a configurando la HISTFILE
variable de entorno..
Respuesta1
Quieres atrapar SIGHUP;
De man 7 signal
:
SIGHUP 1 Term Hangup detected on controlling terminal or death of controlling process
Entonces, para atrapar tanto SUSPIRO como SALIDA:
trap 'export HISTFILE=/tmp/custom.hist' 1 EXIT
o:
trap 'export HISTFILE=/tmp/custom.hist' SIGHUP EXIT
Respuesta2
Puede guardar el archivo histórico después de cada comando. Este truco generalmente se usa para sincronizar el historial de múltiples ventanas, pero funcionaría en su caso. Ver por ejemplo,esta respuesta