我sudo apt-get update
时不时会这样做,但发现检查它是否完成工作很令人沮丧。有什么办法可以让它在执行完成后弹出通知或播放声音,这样我就可以继续工作了?
答案1
声音我无法帮助你。但是,如果你添加类似
&& notify-send "Task complete."
执行完命令后,您应该会看到右上角弹出一条通知。如果所需的软件包未默认安装,则sudo apt-get install libnotify-bin
应该为您安装。&&
如果第一个命令成功完成,将执行第二个命令。
答案2
你想要的是sudo apt-get update; alert
。接下来是解释和理由。
- 从终端,您可以列出许多要按顺序运行的命令。因此,您需要的是第一个需要很长时间的命令,其次是通知命令。
- 要按顺序运行命令,可以使用
&&
或分隔它们;
。它们有两个不同的含义:command-a && command-b
表示 command-a 将首先运行,然后,如果成功,command-b 将运行;command-a; command-b
意味着 command-a 将先运行,然后 command-b 将运行,command-a 是否成功。您可能需要分号:当更新或升级停止运行时,您希望收到通知,无论它是否已成功退出。 - 其他回答者已经给出了建议的音频和屏幕提醒。我个人更喜欢
notify-send
,它需要两个参数:标题和内容:(sudo apt-get update; notify-send update finished
如果任一参数包含空格,请将其括在引号中)。 notify-send title content
比更快更容易输入alert
。至少在某些版本的 Ubuntu 中,此别名默认内置于 bash 中,如果您的 bash 中缺少此别名,则可以轻松添加(用于type alert
检查它是否存在)。您应该得到响应,alert is aliased to `notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e 's/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//')"'
这意味着它将简单地拉出最后一个命令并将其发送到
notify-send
,并且伴随的图标将是终端图像(对于成功的命令)或错误图像(对于失败的命令)。生活现在变得更加简单:
command; alert
输入起来非常快捷方便。它会提醒命令是否成功,并且警报将包含命令是否成功的指示。
顺便说一句,我偶尔会因为无法将输出传输到而感到烦恼notify-send
,因此我编写了一个小函数来帮我完成这件事:
notify ()
{
while read input; do
notify-send -i $(ls /usr/share/icons/gnome/32x32/emotes | sed 's/\(.*\)\..*/\1/' | shuf -n1) "message" "$input";
done
}
这样我就可以输入command | notify
。不过,在这种情况下,图标是随机的。此外,每输出一行,您都会收到一个通知,这可能不是 的好选择apt-get update
。
答案3
对于 aplay 兼容文件
要通过扬声器播放自定义声音,您可以运行
aplay <path_to_sound_file>
*<path_to_sound_file> = 声音文件的路径
播放所选的声音文件;然后您可以添加playsound
别名~/.bashrc
:
alias playsound='aplay <path_to_sound_file>'
*<path_to_sound_file> = 声音文件的路径
这样,当运行完成后,您就可以sudo apt-get update && playsound
播放所选的声音。sudo apt-get update
对于非 aplay 兼容文件(例如 .ogg 文件)(系统声音)
要通过扬声器播放自定义声音,您可以运行
pacmd list-sinks | grep -E 'index|device.product.name'
列出所有pulseaudio
可用接收器的索引及其对应的设备;然后您可以运行
pacmd play-file /usr/share/sounds/ubuntu/stereo/bell.ogg <sink_index> > /dev/null
*<sink_index> =pulseaudio
接收器的索引
通过所选接收器播放/usr/share/sounds/ubuntu/stereo/bell.ogg
。(当然,您可以播放任何您想要的声音);然后您可以playsound
为添加别名~/.bashrc
:
alias playsound='pacmd play-file /usr/share/sounds/ubuntu/stereo/bell.ogg <sink_index> > /dev/null'
*<sink_index> =pulseaudio
接收器的索引
这样,当运行完成后,您就可以sudo apt-get update && playsound
播放所选的声音。sudo apt-get update
答案4
我写了一些脚本来实现它。脚本位于github。
这是安装指南:
安装
下载或者只是克隆 repo
$ git clone [email protected]:c0rp-aubakirov/notify_after_command_executed.git
然后将脚本来源添加postexec_notify
到您的.bashrc
.
git clone
安装示例如下:
$ cd ~
$ git clone [email protected]:c0rp-aubakirov/notify_after_command_executed.git
$ cd ~/notify_after_command_executed
$ echo "source $(pwd)/postexec_notify" >> ~/.bashrc
现在重启你的终端。重启后你会看到以下消息:
preexec.sh is not exist
Trying to download it from github
现在尝试测试是否出现通知:
$ sleep 6
如果您有任何不清楚的地方或者问题,请告诉我。