Apakah ada persamaan dengan zsh's precmd untuk menjalankan fungsi setelah perintah selesai?
Saya mencari cara untuk mengirimkan pemberitahuan kepada diri saya sendiri untuk proses apa pun yang membutuhkan waktu lebih dari 60 detik. Zsh memiliki kemampuan hebat untuk mencetak ringkasan sumber daya yang digunakan untuk setiap perintah jika perintah tersebut membutuhkan waktu lebih lama dari nilai yang ditetapkan dalam REPORTTIME detik. Dari apa yang dapat saya katakan, satu-satunya pilihan yang tersedia adalah mencetak format dalam TIMEFMT.
(Lebih khusus lagi, saya ingin mengirimkan pemberitahuan kepada diri sendiri dengan https://pushover.net/ jika ada proses yang berjalan dalam sesi tmux terpisah membutuhkan waktu lebih dari 60 detik untuk menyelesaikannya.)
notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"
?Jawaban:
Anda dapat menggunakan
preexec
untuk mulai menghitung waktu sejak eksekusi dan kemudianprecmd
yang berjalan setelah eksekusi perintah selesai dan sebelum prompt diambil untuk mengevaluasi apakah Anda ingin atau tidak pemberitahuan (dan mengirimkannya).sumber