当脚本执行准备好时如何播放声音?

Mar*_*oma 57 shell ubuntu audio

我不时执行一些需要很长时间才能执行的 python 脚本。

我像这样执行它们: $ time python MyScript.py

如何在脚本执行完成后立即播放声音?

我使用 Ubuntu 10.10(Gnome 桌面)。

gee*_*aur 52

附加任何播放声音的命令;这可能很简单

$ time mycommand; printf '\7'
Run Code Online (Sandbox Code Playgroud)

或复杂如

$ time mycommand && paplay itworked.ogg || paplay bombed.ogg
Run Code Online (Sandbox Code Playgroud)

(命令假定已安装pulseaudio;替换您的声音播放器,这取决于您的桌面环境。)

  • +1 `paplay` 可能是在“现代”Linux 系统上播放声音的最佳命令。 (9认同)
  • printf '\7' 对我不起作用,但这个命令按我的意愿工作`time python MyScript.py -n 40 && paplay /usr/share/sounds/ubuntu/stereo/desktop-login.ogg || paplay /usr/share/sounds/ubuntu/stereo/phone-outgoing-busy.ogg` (5认同)
  • @laggingreflex 你可能不再需要这个了,只是为了笑;) `for i in {1..30}; 为 {1..3} 中的 j 做;做 printf '\7'; 睡眠 0.12;完毕; 睡眠 0.4;完成` (4认同)
  • @laggingreflex 不,`\7` (BEL) 通常是唯一可能触发声音的字符(请参阅维基百科文章 [控制字符](http://en.wikipedia.org/wiki/Control_character));请注意,它也可能并不总是发出声音。 (2认同)

Cir*_*郝海东 25

spd-say

sleep 2; spd-say 'get back to work'
Run Code Online (Sandbox Code Playgroud)

-w如果您需要额外的动力,请无限循环:

sleep 2; while true; do spd-say -w 'get back to work'; done
Run Code Online (Sandbox Code Playgroud)

通过软件包预安装在 14.04 上speech-dispatcherhttp : //releases.ubuntu.com/trusty/ubuntu-14.04.4-desktop-amd64.manifest适合盲人使用?

还添加了一个弹出窗口

这个组合是一个救生员(b代表beep):

b() ( spd-say 'done'; zenity --info --text "$(date);$(pwd)" & )
Run Code Online (Sandbox Code Playgroud)

进而:

super-slow-command;b
Run Code Online (Sandbox Code Playgroud)

如果我在房间里的某个地方,我会听到它并知道长期的工作已经完成。

否则,当我回到我的电脑时会看到弹出窗口。

相关:https : //stackoverflow.com/questions/7035/how-to-show-a-gui-message-box-from-a-bash-script-in-linux


Mic*_*zek 9

只需在你的硬盘上选择一个声音,然后在你等待的命令之后输入一个命令来播放它;它们将依次发生:

$ time python MyScript.py; mplayer ~/ScriptDone.wav
Run Code Online (Sandbox Code Playgroud)

(当然,您可以使用任何播放器)。我有一个脚本alertdone,它会在运行时播放提示音并显示 libnotify 警报;我正好在这个场合使用它:

$ time python MyScript.py; alertdone "Done timing"
Run Code Online (Sandbox Code Playgroud)

这真的很简单,所以如果你想制作自己的,你可以以此为基础(我的需要notify-more, mplayer, 和~/tones/alert_1.wav):

#!/bin/bash
message=${1:-"Finished working"}
notify-more -t 10000 -i /usr/share/icons/gnome/32x32/actions/insert-object.png "Process Finished" "$message"
mplayer ~/tones/alert_1.wav
Run Code Online (Sandbox Code Playgroud)

  • `notify-more` 或 `notify-send` 确实可以替代播放声音。 (2认同)

Gil*_*il' 8

time python MyScript.py; play /path/so/sound.ogg
Run Code Online (Sandbox Code Playgroud)

play是来自sox 安装 sox http://bit.ly/software-small包的一个非常基本的(无 UI)声音播放器。您可以用任何其他命令行驱动的声音播放器替换它。


eez*_*eze 5

就个人而言,我使用my-script && notify-send "done". 这会发送一个桌面通知,在 Linux Mint(Cinnamon) 上看起来像这样:

在此处输入图片说明