我正在运行 Xubuntu 15.04,但也许这个问题对所有 Ubuntu 版本都有一个通用的解决方案。
我通常会在终端窗口中运行长时间的计算,这可能需要几分钟、几小时或几天的时间。如果能在终端完成执行命令时以某种方式提醒我,那就太好了。这应该只对最小化的终端是必要的。
有没有办法设置这样的功能?理想情况下,终端窗口可以闪烁,或者可能会出现通知。
答案1
有几种方法,都使用&&
(逻辑 AND)运算符(仅在最后一个命令成功时运行)。如果您想无论命令成功还是失败都运行通知,请使用分号;
代替&&
。
图形化
myscript.sh && notify-send 'DONE'
声音的:
myscript.sh && aplay /usr/share/sounds/speech-dispatcher/test.wav
请注意,您可以使用任何音频文件,而不是我在此处使用的音频文件。
两个都:
myscript.sh && aplay /usr/share/sounds/speech-dispatcher/test.wav && notify-send 'DONE !'
答案2
答案3
我建议使用 libnotifynotify-send
进行通知。我创建了以下脚本来执行此操作:
#!/bin/bash
$1 && \
notify-send -u critical -i info 'Command execution finished' "The command '$1' terminated successfully" || \
notify-send -u critical 'Command execution failed' "The command '$1' exited with errors"
如果你将上述脚本保存在名为 eg 的文件中nexec
,并使用 使其可执行chmod +x nexec
,并将程序移动到 shellPATH
变量中的目录(例如/usr/local/bin/
),则可以使用
nexec 'long-time-command some arguments'
例如
nexec 'sudo apt-get update && apt-get dist-upgrade'
libnotify 将(至少在我的系统上是这样的,我假设不同的桌面可能会有所不同)显示标记为“关键”的通知,直到手动关闭它们(例如通过单击它们)。正如您从代码中可以看出的那样,如果命令返回非零结果,您将收到不同的通知。