¿Existe un equivalente de zsh's precmd para realizar una función después de que se haya completado un comando?
Estoy buscando una forma de enviarme una notificación para cualquier proceso que tarde más de 60 segundos. Zsh tiene una gran capacidad para imprimir un resumen de los recursos utilizados para cada comando si el comando tarda más que el valor establecido en segundos REPORTTIME. Por lo que puedo decir, la única opción disponible es imprimir el formato en TIMEFMT.
(Más específicamente, estoy buscando enviarme una notificación con https://pushover.net/ si algún proceso que se ejecuta en una sesión tmux separada tarda más de 60 segundos en completarse).
notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"
?Respuestas:
Puede usar
preexec
para comenzar a contar el tiempo desde la ejecución y luego elprecmd
que se ejecuta después de que finaliza la ejecución del comando y antes de que se dibuje el aviso para evaluar si desea o no una notificación (y enviarla).fuente