Ja, i zsh kan du bruge en kombination af precmd
og preexec
hooks til at udføre handlinger før og efter en kommando. For at sende en notifikation, hvis en proces tager over 60 sekunder, kan du følge disse trin:
preexec
funktion til at registrere starttidspunktet for en kommando.precmd
funktion til at beregne den tid, kommandoen tog, og sende en notifikation, hvis den tog over 60 sekunder.Her er et eksempel på, hvordan du kan implementere dette:
# Definer en variabel til at gemme starttidspunktet
typeset -g start_time
# preexec hook til at registrere starttidspunktet
preexec() {
start_time=$(date +%s)
}
# precmd hook til at beregne tid og sende notifikation
precmd() {
local end_time=$(date +%s)
local elapsed_time=$((end_time - start_time))
if (( elapsed_time > 60 )); then
# Send en notifikation (brug notify-send på Linux eller osascript på macOS)
if command -v notify-send &> /dev/null; then
notify-send "Kommandoen tog over 60 sekunder" "Kommandoen tog $elapsed_time sekunder at fuldføre."
elif command -v osascript &> /dev/null; then
osascript -e "display notification \"Kommandoen tog $elapsed_time sekunder at fuldføre.\" with title \"Kommandoen tog over 60 sekunder\""
fi
fi
}
Dette script vil sende en notifikation, hvis en kommando tager mere end 60 sekunder at fuldføre. Bemærk, at du skal have notify-send
installeret på Linux eller bruge osascript
på macOS for at sende notifikationer.
Har du brug for hjælp til zsh og terminalopgaver? Med Handyhand kan du nemt oprette din opgave gratis og få bud fra dygtige hjælpere på få minutter. Uanset om det er installation, konfiguration eller fejlfinding, er der altid nogen klar til at assistere dig. Få den hjælp, du har brug for, og kom hurtigt videre med dit projekt!