对于 aplay 兼容文件

对于 aplay 兼容文件

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

如果您有任何不清楚的地方或者问题,请告诉我。

相关内容