Fonction / hook de la commande zsh post


16

Existe-t-il un équivalent de precmd de zsh pour exécuter une fonction une fois la commande terminée?

Je cherche un moyen de m'envoyer une notification pour tout processus qui prend plus de 60 secondes. Zsh a une grande capacité d'imprimer un résumé des ressources utilisées pour chaque commande si la commande prend plus de temps que la valeur définie en REPORTTIME secondes. D'après ce que je peux dire, la seule option disponible est d'imprimer le format en TIMEFMT.

(Plus précisément, je cherche à m'envoyer une notification avec https://pushover.net/ si un processus en cours d'exécution dans une session tmux détachée prend plus de 60 secondes.)


13
Pourquoi était-ce fermé? Cela me semble utile et parfaitement logique.
Blacklight Shining

1
Je suis d'accord, c'est une bonne question et n'aurait pas dû être fermée.
NorthIsUp

On dirait que cette question similaire peut y répondre!
Brad Parks

J'aimerais que cette question soit rouverte s'il vous plaît.
pawamoy

As-tu essayé notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"?
JW0914

Réponses:


0

Vous pouvez utiliser preexecpour commencer à compter le temps écoulé depuis l'exécution, puis celui precmdqui s'exécute une fois l' exécution de la commande terminée et avant que l' invite ne soit dessinée pour évaluer si vous souhaitez ou non une notification (et l'envoyer).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.