0
zshで実行するプログラムの所要時間を測定したいとします。時差に基づいて、撮影した時間を印刷したいと思います。zshで実行するコマンドの実行時間を測定するためのカスタムのaccept-lineを作成します。
my-accept-line() {
CMD="$BUFFER"
CMDSTART=$(date +%s)
zle accept-line
CMDRUNTIME=$((($(date +%s)-${CMDSTART})))
if [[ $CMDRUNTIME -ge 100 ]]; then
CMDRUNTIME_min=$(($CMDRUNTIME/60))
echo "Last command ran for $CMDRUNTIME_min minutes."
fi
}
# create a widget from `my-accept-line' with the same name
zle -N my-accept-line
# rebind Enter, usually this is `^M'
bindkey '^M' my-accept-line
しかし、 "zle accept-line"がバックグラウンドで実行されているようです。そのため、私はいつもCMDRUNTIMEを0にしてしまいます。これに対する回避策はありますか?