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.
Spar dig selv for besvær og kom igennem din to-do liste i dag
1
Beskriv din opgave
2
Modtag bud
3
Få løst din opgave
Møbelsamling
Hjælp med at samle Ikea klædeskab
Maler
Klargøring af lejlighed til flyttesyn
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Havearbejde
Beskæring af 4 større træer
IT support
Geninstallering af windows + programmer
Elektriker
Installation af Sonos musikanlæg i hus
Rengøring
Ugentlig rengøring af lejlighed (114kvm)
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Elektriker
Opsætning af lamper i stue og soveværelse
Catering
3-retters menu til 14 mennesker