Ich habe einen langen Prozess durch ein Terminal gestartet. Ist es möglich, dass das Ubuntu-Terminal nach Abschluss des Vorgangs einen Ton ausgibt? Auf diese Weise muss ich nicht weiter nachsehen, sondern werde durch einen Ton benachrichtigt.
command-line
notification
Goaler444
quelle
quelle
Antworten:
Es gibt mindestens drei Befehlszeilenmethoden, um dies zu erreichen, indem Sie den entsprechenden Befehl an das Ende Ihres Skripts setzen, das Sie möglicherweise für Ihren langen Prozess aufrufen:
Die "klassische" Art, einen Sound abzuspielen, besteht darin, durch die PC-Lautsprecher zu piepen . Dies funktioniert jedoch nicht in allen Fällen (z. B. bei meinem System sind die PC-Lautsprecher vollständig deaktiviert), und Sie müssen pscpkr entfernen
/etc/modprobe/blacklist.conf
und daspcspkr
Kernelmodul laden .Wir können auch jede Audiodatei im WAV-Format mit aplay abspielen (standardmäßig installiert):
Eine andere Möglichkeit besteht darin, die Befehlszeilenschnittstelle von pulseaudio zu verwenden, um die Wiedergabe von Audiodateien zu ermöglichen, die Ihr System (in
libsndfile
) bei der Standardaudioausgabe erkennt:Wir können Standard-Audiodateien von
/usr/share/sounds/
oder jede andere Audiodatei verwenden , die sich an einem anderen Ort befindet.Um es nur zu erwähnen, es gibt einen anderen netten Weg, dies durch Missbrauch von espeak zu erreichen , das standardmäßig in Ubuntu <= 12.04 installiert ist. Sehen oder hören Sie das folgende Beispiel:
In Ubuntu> = 12.10 verwendet Orca den Speak-Dispatcher. Wir können dann espeak installieren oder alternativ verwenden
spd-say "Text"
.quelle
spd-say
.spd-say
Dienstprogramm ist standardmäßig installiert und funktioniert auf meinem System.paplay /usr/share/sounds/freedesktop/stereo/complete.oga
ich benutze
Ersetzen Sie "make" durch einen beliebigen Befehl mit langer Laufzeit.
quelle
spd-say 'get back to work
'. Und es ist auch vorinstalliert: releases.ubuntu.com/trusty/… , für Blinde, nehme ich an? Und-w
für Endlosschleifen:while true; do spd-say -w 'get back to work you lazy bum'; done
.TL; DR
So spielen Sie nach Beendigung des Befehls einen Sound ab:
(wo
sn3
ist Ton Nummer 3) setzen Sie dies in.bashrc
:Oder lesen Sie unten für weitere Optionen:
Unterschiedlicher Klang bei Irrtum und Erfolg
Hier ist, was ich für genau das verwende, wonach Sie fragen - mit einem Unterschied: Es wird nicht nur ein Ton abgespielt, wenn der Befehl beendet ist, sondern es wird bei Erfolg und bei Fehlern ein anderer Ton abgespielt. (Aber Sie können es ändern, wenn Sie es nicht mögen.)
Ich habe eine Bash-Funktion
oks
, die ich am Ende lang laufender Befehle benutze:Es wird ein Ton abgespielt und nach Beendigung des vorherigen Befehls OK oder ERROR (mit Fehlercode) angezeigt.
Quellcode
Hier ist diese Funktion mit zwei Helfern:
Installation
Sie können es direkt in Ihre ~ / .bashrc oder in eine andere Datei einfügen und dann diese Zeile in Ihre ~ / .bashrc einfügen:
Aufbau
Ändern Sie
sound_ok
undsound_error
zu einigen anderen Tönen.Sie können mit experimentieren
sound
vs.soundbg
und Veränderungsound_ok
undsound_error
Sequenzen von vielen Sounds zu verwenden , die das Ergebnis bekommen , die Sie wollen.Gute Klänge
Um ein paar gute Sounds auf Ihrem System zu finden, können Sie versuchen:
Hier sind einige Sounds, die ich oft benutze und die standardmäßig auf Ubuntu verfügbar sind und die für Benachrichtigungen gut sind - sn1 ist laut und nett, sn2 ist sehr laut und immer noch ziemlich nett, sn3 ist extrem laut und nicht so nett:
Auch hier können Sie zu wechseln
sound
,soundbg
wenn Sie es im Hintergrund abspielen möchten, ohne darauf zu warten, dass der Sound beendet wird (z. B. um Ihre Skripte nicht zu verlangsamen, wenn Sie viele Sounds abspielen).Stille Version
Und nur für den Fall - hier ist die gleiche Funktion wie
oks
aber ohne Töne:Verwendungszweck
So verwenden Sie es:
Beispiel mit Erfolg:
Beispiel mit Fehler:
In der Praxis sehen die Befehle natürlich eher so aus:
aber ich habe
ls
so schnell gesehen wie es funktioniert.Sie können
ok
stattoks
für eine stille Version verwenden.Oder Sie können zB verwenden:
um OK / ERROR zu drucken, aber immer den gleichen Sound abzuspielen usw.
Aktualisieren
Ich habe diese Funktionen auf GitHub gestellt, siehe:
Die Quelle kann heruntergeladen werden von:
Update 2
Ich
soundloop
habe dem obigen Repo eine Funktion hinzugefügt . Es gibt einen Sound wieder und kann durch Strg + C unterbrochen werden (im Gegensatz zu einem einfachenwhile true; do paplay file.ogg; done
, von dem man erwarten würde, dass er funktioniert, aber nicht), wie in den Kommentaren von shadi gefordert . Es ist implementiert als:Wenn Sie der Meinung sind, dass es kompliziert ist, richten Sie Ihre Beschwerden bitte an die Entwickler von PulseAudio.
quelle
while true; do paplay ...; done
so einzustellen, dass sich der Ton wiederholt, bis ich ihn drückeCtrl+C
, aber wenn ich das tue, bricht er nicht. Ich kann keine speziellen Optionen finden,man paplay
um herauszufinden, wie dies funktioniert. Irgendwelche Ideen?Nach dieser das
\a
Zeichen entkommt ASCII - Code 7, die den Ton des Computers ist.So
echo $'\a'
funktioniert einen Piepton auf meinem lokalen Rechner zu machen, auch wenn es auf einer Bash - Shell läuft auf einem Computer verbunden Ich bin zu über eine Terminal - Schnittstelle wie PuTTY ausgeführt wird .quelle
Erweitern Sie die Antwort von Michael Curries und lassen Sie Bash ein
BEL
(\a
) -Zeichen drucken durchPROMPT_COMMAND
:Wenn Sie dies
PROMPT_COMMAND
so einstellen, wird Bashprintf \\a
am Ende jedes Befehls ausgeführt, wodurch das Terminal einen Ton wiedergibt (obwohl das Terminal, wie Muru betont, durch einfaches Auslösen des Neuzeichnens der Eingabeaufforderung den Ton wiedergibt, dh der Ton wird wiedergegeben jedes Mal, wenn eine neue Eingabeaufforderung ausgegeben wird (z. B. auch wenn nur ein Treffer erfolgt ENTER).Dies ist eine Terminalfunktion, die möglicherweise nicht für alle Terminals funktioniert. Zum Beispiel funktioniert es nicht in der Konsole (aber ich bin sicher, es funktioniert in
gnome-terminal
undxterm
).quelle
Der Befehl
macht ein Geräusch. Einfachste, aber nervigste Lösung. :-)
In der Bedienungsanleitung von finden Sie
speaker-test(1)
Optionen zum Konfigurieren des Rauschsignals.quelle
Dies ist nicht das, was Sie gefragt haben, aber Sie könnten eine Benachrichtigung dafür verwenden.
Ersetzen Sie den Befehl in den anderen Antworten durch
quelle
Beispiel 1:
echo alik && (say done ; echo done) || (echo error ; say error)
ergibt ein erledigtes Wort.Beispiel 2:
non_existing_command_error && (say done ; echo done) || (echo error ; say error)
führt zu einem Fehlerwort.* Bedürfnisse
gnustep-gui-runtime
-Prost.
quelle
Ich habe ein einfaches und fast natives Skript erstellt, das Sound wiedergibt und eine Benachrichtigung mit einer bestimmten Nachricht und Uhrzeit für Ubuntu ( Gist ) anzeigt :
Wie benutzt man?
Erster Lauf - Einrichten:
Erstellen Sie ein neues Verzeichnis bei Ihnen zu Hause und rufen Sie es an
noti
Laden Sie noti.sh herunter und extrahieren Sie es in das oben angegebene Verzeichnis
noti
.Öffnen Sie das Terminal und wechseln Sie in das Verzeichnis
noti
Machen Sie noti.sh ausführbar, indem Sie Folgendes ausführen:
Führen Sie einen Test wie folgt aus:
Beispiele
Zum Benachrichtigen über das Ende des Prozesses (Beispiel)
quelle
ffmpeg Sinuswelle
Für die Minimalisten da draußen können Sie 5 Sekunden lang einen 1000-Hz-Sinus spielen:
oder für immer, bis Sie Strg-C tun:
Weitere Informationen finden Sie unter: https://stackoverflow.com/questions/5109038/linux-sine-wave-audio-generator/57610684#57610684
Getestet in Ubuntu 18.04, ffmpeg 3.4.6.
quelle