终端命令 ping 失败时发出声音

终端命令 ping 失败时发出声音

有没有办法让 Ubuntu 14.04 终端触发成功,或者如果它无法 ping Google,则触发不同的声音,例如当 wifi 断线时?如果是这样,在经过一定时间后,我该如何在后台不断循环执行此操作?我认为它会像 (命令);睡眠 (时间长度);完成或类似?

答案1

这个问题实际上有点宽泛,AskUbuntu 是针对具体问题的,而这更像是有人能给我写一个脚本吗。
但是嘿,这只是几行,让我们开始吧:

#!/bin/bash
while "true"
do
    ping -w 10 -c 5 www.google.com
    if test $? -ne '0'
    then
            spd-say "connection lost"
            sleep 3s
    fi
done

基本上,我们用 ping 重复一个无限循环并检查它是否因错误退出。($? 给出先前执行的程序的退出代码)。

对于计时,您只需更改 ping 命令即可。现在打开扬声器并享受吧。:)

答案2

尽管

ping -a IP_ADDRESS

每次成功时都会发出蜂鸣声(如echo -e "\a"),我没有在标准ping命令中找到任何在失败时发出蜂鸣声的选项。

基于@Requist 回答,每 5 分钟使用一行crontab设置所需行为可能是:

(crontab -l 2>/dev/null; echo "*/5 * * * * /bin/ping -w 10 -c 4 8.8.8.8 || spd-say 'off'") | crontab -

注意:由于这会设置一个 crontab 作业,您需要crontab -e通过删除引入的行(或编辑其参数)来禁用它。

答案3

ping -A 1.2.3.4 大写的 A 参数用于当目标停止回复我们的 ping 时向我们发送哔声。

相关内容