我工作的地方有一些命令需要很长时间才能执行。
是否有命令/实用程序可用于在命令执行结束时通知我?它可能是一个弹出窗口,也可能是一点声音。
答案1
一般来说,如果你知道这一点前运行该命令,你可以直接使用以下命令启动它:
command; command-after &
这将执行command-after
后前一个命令已退出(无论其退出代码是什么)。&
将在后台启动它。
如果您关心成功或失败退出,请分别使用:
command && command-after-only-if-success &
command || command-after-only-if-fail &
如果命令有已经fg
启动后,您可以使用作业控制来暂停它,然后通过通知将其返回到前台:
command
# enter Ctrl-z
fg ; command-after
现在... 此后您要做什么取决于您的环境。
在任何系统, 你可以“响起”终端铃声。取决于您的具体系统,哪种方式真正有效(BSD 与 GNU Linux 等),但
tput bel
应该可以。不过,我现在无法可靠地测试它。搜索“ring bell”以了解更多信息。在Mac OS X,你可以使用 AppleScript 弹出 Finder 对话框:
osascript -e 'tell Application "Finder" to display dialog "Job finished" '
你可以让它对你说些什么:
say "Job finished"
或者你可以使用 Mountain Lion 的通知系统:
sudo gem install terminal-notifier # <= only need to do this once terminal-notifier -message "Job finished!" -title "Info"
在GNOME,
zenity
可以显示从命令行调用的 GTK 对话框。另请参阅此 Stack Overflow 问题:在 Linux 中显示来自 Bash 脚本的消息框。它可以通过您最喜欢的包管理器进行安装。zenity --info --text="Job finished"
在实现桌面通知规范, 例如Ubuntu和GNOME,您可以使用以下方式触发通知系统
notify-send
(部分libnotify
)。notify-send "Job finished!"
桌面环境用途
kdialog
,例如:kdialog --passivepopup 'Job finished'
答案2
在类 Unix 系统上,你可以响铃:
echo -e "\a"
答案3
我为 MacOS X 创建了一个简单的工具,可以完成这个任务。https://github.com/vikfroberg/brb
安装
$ npm install -g brb
指示
$ sleep 3; brb
答案4
要获取声音通知,您可以使用spd-say "Some text"
。例如:
some-command; spd-say "Yo"
更新
如果您没有预先安装语音调度程序,您可以通过以下方式安装:
sudo apt-get install speech-dispatcher