如果命令持续时间超过 X 分钟,则发出声音

如果命令持续时间超过 X 分钟,则发出声音

我知道已经有人问过如何命令后发出声音

尽管人们似乎打算在长时间运行的命令之后使用它,但最初实际的技巧和命令的持续时间之间没有联系

我的问题是,我是否可以(使用 bash 或 zsh)让我的终端执行一个脚本,该脚本将包装每个命令,查看start time并比较它何时完成end time当且仅当命令持续时间超过 X 分钟时,声音播放了吗?

因为在实践中,那些长时间运行的命令通常是新的,我不可能每次都预料到这一点!

奖金:对于交互式命令(例如),不应该播放声音ssh xxx,如果太难,标准可能是焦点是否给予窗口。

多谢!

答案1

谢谢你的想法,将来可能对我也有用,而且这也是学习 bash 的一个很好的借口,对于任何常见错误深表歉意,我只是在不到 15 分钟的时间内从一堆 Google 搜索中生成了这个脚本。

用法:script.sh "command" 29(29 是秒数)我没有实现发出声音的实际命令。你必须谷歌搜索最适合你需求的选项并将其替换

#!/bin/bash
eval $1 &
PID=$!
let "timer=0"
let "increase=1"
let "mtime=$2"
while true; do
    if [ "$(ps -p $PID -o pid=)" = "" ]; then exit; fi
    let "timer=timer+increase"
    if [[ timer -gt mtime ]]; then
        let "timer=0"
        let "increase=0"
        replaceme-with-sound-command
    fi
    sleep 1
done

不,我不知道有什么方法可以将每个命令扭曲成其他命令,最好的情况是,您可以删除扩展名并将上述脚本放在 $PATH 中的某个位置,并使用像 'tm' 这样的短名称来方便访问

相关内容