V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
douglas1997
V2EX  ›  问与答

有没有 zsh 的命令运行时间过长推送到 telegram 的脚本代码?

  •  
  •   douglas1997 · 2017-08-12 17:13:56 +08:00 · 1140 次点击
    这是一个创建于 2419 天前的主题,其中的信息可能已经有所发展或是发生改变。

    起源于这个链接: 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 条回复    2017-08-12 20:24:18 +08:00
    douglas1997
        1
    douglas1997  
    OP
       2017-08-12 20:24:18 +08:00
    悄悄顶一下, 不知道怎么写。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5439 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:08 · PVG 17:08 · LAX 02:08 · JFK 05:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.