Ich führe von Zeit zu Zeit einige Python-Skripte aus, deren Ausführung ziemlich lange dauert.
Ich führe sie so aus:
$ time python MyScript.py
Wie kann ich einen Sound abspielen, sobald die Ausführung des Skripts abgeschlossen ist?
Ich benutze Ubuntu 10.10 (Gnome Desktop).
bash
oderzsh
? Es gibt tatsächlich einige Möglichkeiten, wie dies automatisch geschehen kann, aber sie sind sehr aufwendig und hängen davon ab, welche Shell Sie verwenden.Antworten:
Hängen Sie einen Befehl an, der einen Sound wiedergibt. das könnte so einfach sein wie
oder so komplex wie
(Bei den Befehlen wird davon ausgegangen, dass pulseaudio installiert ist. Ersetzen Sie den Sound-Player, der von Ihrer Desktop-Umgebung abhängt.)
quelle
paplay
ist wahrscheinlich der beste Befehl, um einen Sound auf einem "modernen" Linux-System abzuspielen.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
printf '\7'
funktioniert bei mir (paplay nicht; (git shell)) aber es ist nur ein sehr kleiner bip . Gibt es mehr Codes, die andere Geräusche machen? Ich habe es versucht\6
,\8
aber es sind einige Charaktere.\7
(BEL) ist normalerweise das einzige Zeichen, das möglicherweise einen Ton auslöst (siehe Wikipedia-Artikel Steuerzeichen ). Beachten Sie, dass es möglicherweise auch nicht immer einen Ton gibt.for i in {1..30}; do for j in {1..3}; do printf '\7'; sleep 0.12; done; sleep 0.4; done
spd-say
Endlosschleife mit,
-w
wenn Sie zusätzliche Motivation benötigen:Vorinstalliert am 14.04 via Paket
speech-dispatcher
: http://releases.ubuntu.com/trusty/ubuntu-14.04.4-desktop-amd64.manifest für Blinde nehme ich an?Fügen Sie auch ein Popup hinzu
Diese Combo ist ein Lebensretter (
b
steht fürbeep
):und dann:
Wenn ich irgendwo im Raum bin, werde ich es hören und wissen, dass die lange Arbeit erledigt ist.
Andernfalls wird das Popup angezeigt, wenn ich wieder zu meinem Computer zurückkehre.
Siehe auch: https://stackoverflow.com/questions/7035/how-to-show-a-gui-message-box-from-a-bash-script-in-linux
quelle
spd-say
zugehörige Tool zu erhaltenspeech-dispatcher
, müssen Sie möglicherweise ein Unterpaket wiespeech-dispatcher-utils
(Fedora 24) installieren .Wählen Sie einfach einen Sound auf Ihrer Festplatte und geben Sie einen Befehl ein, um ihn direkt nach dem Befehl abzuspielen, auf den Sie warten. Sie werden nacheinander passieren:
(Sie können natürlich jeden Spieler benutzen). Ich habe ein Skript namens
alertdone
, das einen Ton abspielt und beim Ausführen eine libnotify-Warnung anzeigt. Ich benutze es für genau diesen Anlass:Es ist wirklich einfach, wenn Sie also Ihre eigenen machen wollen Sie es auf dieser Basis kann (meine erfordert
notify-more
,mplayer
und~/tones/alert_1.wav
zwar):quelle
notify-more
odernotify-send
könnte in der Tat nützliche Alternativen zum Abspielen eines Sounds sein.play
ist ein sehr einfacher (kein UI) Sound-Player aus dem Paket sox Install sox http://bit.ly/software-small . Sie können ihn durch jeden anderen befehlszeilengesteuerten Soundplayer ersetzen.quelle
play
,aplay
, oderpaplay
. (Mein Ubuntu-System hataplay
undpaplay
standardmäßig.)time python MyScript.py -n 40; paplay /usr/share/sounds/ubuntu/stereo/desktop-login.ogg
hat funktioniert, danke.Persönlich benutze ich
my-script && notify-send "done"
. Dies sendet eine Desktop-Benachrichtigung, die unter Linux Mint (Cinnamon) folgendermaßen aussieht:quelle
Dies kann auch automatisch geschehen.
Ich werde dir zeigen, wie es geht
zsh
, und dann Infos über hinzufügenbash
.Das Wesentliche sieht so aus:
Sie können es auch nur machen lassen, wenn das Programm Python war, z
In
bash
ist der beste Weg , um Download preexec.bash.txt und Quelle sie (zB. ~/preexec.bash.txt
an der Spitze Ihres~/.bashrc
, dann sollte die oben (oder so nahe daran) arbeiten. (Nicht sicher das$3
Bit zu überprüfen , ob der Befehl Python .)Wenn Sie GNOME Terminal verwenden, würde ich Sie auch auf Flashing GNOME Terminal verweisen . Es ist ein Patch, den ich geschrieben habe, der bewirkt, dass das Terminal blinkt, wenn ein Befehl ausgeführt wird. Sie können also mit gedrückter Alt-Tab-Taste einen anderen Befehl aufrufen und wissen dann, wann der Befehl ausgeführt wurde.
quelle
Sie müssen nicht jedem Befehl einen Befehl hinzufügen, sondern können ein Skript verwenden, das dies automatisch für Sie erledigt. Es heißt undistract-me und ist auf Github erhältlich.
Beispiel
Jetzt neue Bash starten und fertig. Ton und Alarm können durch Ändern des Skripts geändert werden.
quelle
Jeder Spieler kann verwendet werden. Ich füge der
cvlc
Vollständigkeit halber hinzu .quelle