![根据定期执行命令的返回值在状态栏上显示状态指示器](https://linux22.com/image/1197849/%E6%A0%B9%E6%8D%AE%E5%AE%9A%E6%9C%9F%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BF%94%E5%9B%9E%E5%80%BC%E5%9C%A8%E7%8A%B6%E6%80%81%E6%A0%8F%E4%B8%8A%E6%98%BE%E7%A4%BA%E7%8A%B6%E6%80%81%E6%8C%87%E7%A4%BA%E5%99%A8.png)
我想定期执行一个命令,并根据其输出直观地显示其最后的返回值(0:绿色,非零:红色)。
例如,通过使用下面的命令,我可以检查我的 vpn 连接是否仍然有效且健康。protected-node
只能通过 vpn 访问,因此如果 vpn 不健康或关闭,它将返回非零。
nc -w5 -z vpn-only-accessible-node 80
因此,如上所述,我正在寻找一种方法将命令的返回值转换为状态栏中的视觉指示或桌面上其他始终可见的区域。
我正在使用 mate 桌面。
答案1
答案2
使用notify-send
,你总是可以做这样的事情:
while sleep 5
do
nc -w5 -z vpn-only-accessible-node 80 && \
notify-send --icon=network-wired "OK" "OK" || \
notify-send --icon=network-error "ERR" "Error"
done
...或者在命令字符串中,您可以通过在启动应用程序中将其作为命令提供来运行,以便它在用户桌面登录时自动运行...就像这样:
/bin/bash -c 'while sleep 5; do nc -w5 -z vpn-only-accessible-node 80 && notify-send --icon=network-wired "OK" "OK" || notify-send --icon=network-error "ERR" "Error"; done'
以上任何一项都会每五秒运行一次您的命令,并向您发送外观和消息不同的可视桌面通知。