起源于这个链接: http://www.huginn.cn/blog/share/让费时命令执行完推送到-telegram
大家有在 zsh 上用过这个插件吗? 我发现 bash 里面的那个函数在 zsh 不兼容, 这个脚本应该怎么重写呢?
代码粘贴如下:
# push a notification when a long-time command finished
# prefix: _TGPN
function _TGPN_precommand_cbk() {
[[ -z “$_TGPN_AT_PROMPT ” ]] && return
unset _TGPN_AT_PROMPT
_TGPN_CMD=”$BASH_COMMAND ”
_TGPN_TELEGRAM_NOTIFY_START_TIME=$(date +%s)
}
trap ‘_TGPN_precommand_cbk ’ DEBUG
_TGPN_FIRST_PROMPT=1
function _TGPN_postcommand_cbk() {
_TGPN_AT_PROMPT=1
if [ -n “$_TGPN_FIRST_PROMPT ” ]; then
unset _TGPN_FIRST_PROMPT
return
fi
local NOW=$(date +%s)
local DIFFERENCE=$(( $NOW – ${_TGPN_TELEGRAM_NOTIFY_START_TIME:-0} ))
_TGPN_THRESHOLD=10
_TGPN_IGNORE=$(cat <<EOF
^adb shell
^vim
^vi
^nano
EOF
)
[[ $DIFFERENCE -gt $_TGPN_THRESHOLD ]] && {
for pattern in $_TGPN_IGNORE; do
echo $_TGPN_CMD | grep -qE $pattern && return
done
echo “发现了上条命令执行了很久,推送执行完毕信息到 Telegram ”;
telegram-send “✅$_TGPN_CMD ” &
}
}
PROMPT_COMMAND=”_TGPN_postcommand_cbk ”
Thanks.
1
douglas1997 OP 悄悄顶一下, 不知道怎么写。。。
|