起源于这个链接: 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.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.