Ich möchte einen Signalton in einem Shell-Skript verwenden. Leider funktioniert keine der über Google gefundenen Methoden für mich.
Ich habe es versucht
echo -e '\a'
echo -ne '\007'
und den befehl beep
nachdem ich ihn via apt installiert habe.
Was könnte der Grund sein?
Antworten:
Erst laufen
sudo modprobe pcspkr
und dannbeep
sollte es funktionieren.Der Grund dafür ist, dass Ubuntu standardmäßig nicht mehr den Hardwaretreiber lädt, der Signaltöne erzeugt.
Wenn dies für Sie funktioniert, können Sie das Laden von pcspkr dauerhaft aktivieren,
/etc/modprobe.d/blacklist.conf
indem Sie die Datei bearbeiten (gksudo gedit
möglicherweise mit) und eine Zeile auskommentieren, dieblacklist pcspkr
so aussieht:quelle
blacklist pcspkr
ich etwas tunmodprobe -r pcspkr && modprobe pcspkr
, damit es funktioniert. Das Aktivieren des Pieptons ist nicht gleichbedeutend mit dem Aktivieren der akustischen Glocke. Daher sollte askubuntu.com/questions/22168/wie-do-aktivierbar-die-Klemmenglocke noch geöffnet sein.Da ich kein Fan des pcspkr-Tons bin, benutze ich einen Ton aus einem der Systemtöne mit dem Paplay-Befehl des installierten pulseaudio-Servers.
Suchen Sie zuerst einen Sound, den Sie mögen (Sie können zum Beispiel / usr / share / sounds nach verfügbaren durchsuchen) und einen Verweis darauf erstellen
Dann haben Sie es als Befehl zur Verfügung
Jetzt einfach ausführen,
beep
wann immer Sie es brauchen. Um Sie beispielsweise zu benachrichtigen, wenn ein Befehl ausgeführt wurde:quelle
echo -e '\a'
run-my-long-test-suite.sh; beep
Stackoverflow lesen, bis das System bereit ist.export BEEP=/usr/share/sounds/ubuntu/stereo/dialog-information.ogg
undalias beep='paplay $BEEP --volume=32768'
jetzt funktioniert das gut für mich. (Beachten Sie, dass Sie die Lautstärke mit dem außer Kraft setzen kannbeep
Alias, zBbeep --volume=15000
spielt bei Volumen von -12dB.)So beheben Sie dieses Problem dauerhaft:
gconf-editor
diedesktop | gnome | peripherals | keyboard | bell_mode
Einstellung vonoff
in, wenn sie vorhanden iston
dconf-editor
dieorg | gnome | settings-daemon | peripherals | keyboard | bell-mode
Einstellung vonoff
in, wenn sie vorhanden iston
pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.ogg
auf die Datei~/.xprofile
(Sie müssengnome-control-center-data
fürglass.ogg
)[ "$DISPLAY" ] && xset b 100
in der Datei~/.bashrc
Der einfachste Weg, diese Lösung zu aktivieren, ist ein Neustart.
Führen Sie den
pactl
Befehl aus, und führen Sie denxset
Befehl in dem betreffenden Terminal-Fenster aus, um diese Lösung sofort für ein Terminal-Fenster zu implementieren, das bereits geöffnet ist .quelle
pactl upload-sample
Befehl in ein Shell-Skript eingefügt, aber Ihre Methode ist organisierter. Vielen Dank!pactl
Befehl~/.xprofile
eingeben, wird er zu Beginn der GUI-Sitzung ausgeführt.dconf-editor
Version derbell-mode
Einstellung scheint zu seinorg.gnome.settings-daemon.peripherals.keyboard
.glass.ogg
installiertDa dies bei Google eine sehr hoch bewertete Frage ist, füge ich die Schritte hinzu, die ich ausgeführt habe, um den Piepton sowohl in der Konsole als auch in X11 wieder zu aktivieren:
Für die Linux-Konsole ( CTRL+ ALT+ F1... F6):
Warum funktioniert es nicht standardmäßig
Wie bereits beantwortet , ist der
pcspkr
Kerneltreiber für den PC Speaker in Ubuntu auf der Blacklist.Vorübergehende Aktivierung bis zum Neustart:
Beim Booten automatisch aktivieren:
(löschen oder kommentieren Sie die
pcspkr
Zeile, indem Sie sie voranstellen#
)Für X11-Terminals (wie die Standardeinstellung
gnome-terminal
)Warum funktioniert es nicht standardmäßig
Unter X werden die Beep-Ereignisse wie bei Unity, KDE und Gnome Shell von PulseAudio dank aufgezeichnet
module-x11-bell
, das standardmäßig unter geladen wird/usr/bin/start-pulseaudio-x11
. Und das Soundbeispiel, das PulseAudio bei einem Piepton wiedergibtbell.ogg
, ist standardmäßig leer. Zusätzlich kann die Klingellautstärke stummgeschaltet werden.So aktivieren Sie die aktuelle Sitzung vorübergehend:
Es gibt noch andere geeignete Beispiele, die Sie ausprobieren können
/usr/share/sounds
, z. B. die unter/usr/share/sounds/gnome/default/alerts/
Beachten Sie, dass das
beep
Programm nicht wirklich notwendig ist. Wenn es installiert ist, wird der PC-Lautsprecher verwendet. Nur so konnte ich den Summer unter X aktivieren:Um die automatische Aktivierung beim Booten zu aktivieren, fügen Sie einfach die obigen Zeilen in Ihrem
~/.profile
oder systemweit unter hinzu/etc/profile
Um es zu testen:
Signalton!
Summen!
quelle
pcspkr
undbell.ogg
sind unabhängige Ansätze.beep
versucht mit verschiedenen Methoden zu piepen, z. B.ioctl(console_fd, KIOCSOUND, period)
mitpcspkr
(der Ton kommt vom PC-Lautsprecher auf der Hauptplatine), währendprintf '\a'
-basierte Methode möglicherweise nur mit funktioniertbell.ogg
(der Ton kommt von normalen Lautsprechern). Die zweite Methode funktioniert möglicherweise erst, wenn der pulseaudio-Dienst gestartet und / oder ausgeführtxset b on
wirdpactl upload-sample ...
war golden für mich. Wie kann das Laden der Probe dauerhaft konfiguriert werden?~/.profile
oder systemweit um/etc/profile
load-sample bell.ogg /usr/share/sounds/ubuntu/stereo/bell.ogg
in/etc/pulseaudio/default.pa
.Ich bin schon einmal auf dieses Problem gestoßen. Soweit ich mich erinnere, besteht das Problem darin, dass die Terminalklingel versucht, einen internen Computerlautsprecher anzurufen (wie bei einem Desktop der alten Schule), aber auf Laptops und einigen neueren Computern fehlt so etwas.
Die einzige Lösung, die ich damals fand, war
sudo apt-get install sox
undz.B
quelle
play -q -n synth 2 pluck C5
. C5 ist die Note.Endlich habe ich eine Lösung gefunden, für die keine
alsamixer
PC-Beep-Option erforderlich ist . Ich denke, ich erinnere mich an alle meine Änderungen:Kommentar in
/etc/pulse/default.pa
:Führen Sie nach diesem Fehler aus
pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg
quelle
Connection failure: Connection refused pa_context_connect() failed: Connection refused
.Failed to open module "module-esound-protocol-unix": file not found
. Wahrscheinlich ist es nicht wert, hier zu diskutieren, da ich 13.04 laufen habe, obwohl ich gerne in der Lage wäre, Ihre Lösung zu verifizieren.Wenn tatsächlich Lautsprecher an den Computer angeschlossen sind und Sie keinen Signalton hören, liegt dies wahrscheinlich daran, dass Sie compiz verwenden. Compiz verlässt sich darauf, dass pulseaudio die Signaltöne abfängt und wiedergibt, während die Metacity das übliche Setup umgeht und libcanberra verwendet, um einen Signalton abzuspielen. Wenn es mit Metacity und nicht mit Compiz funktioniert, ist das Ihr Problem, andernfalls ist die Antwort, die htorque gab, richtig.
quelle
Soweit ich das beurteilen kann, handelt es sich um einen Fehler: Der System-Beep ist in Karmic trotz heldenhafter Bemühungen, ihn zu beheben, unterbrochen .
quelle
modprobe pcsprk
(in der Konsole) oderpactl upload-sample ...
in X11 und der nervige Piepton ist wieder da :)"Der Signalton funktioniert nur, wenn Ihr PC über einen Lautsprecher verfügt. Viele moderne Laptops / kleine Geräte haben keinen."
Versuchen Sie, einen Sound wie diesen abzuspielen :
play xxxxx.wav
Ich habe eine nette WAV- Datei gefunden, die kurz und bündig zu sein scheint, aber Sie können auch Ihre eigene auswählen. Funktioniert für mich, wenn alles andere fehlgeschlagen ist.Vielen Dank an: tredegar & hk_centos
quelle
Ein alternativer Ansatz - setzen Sie Ihr xterm / console auf "Visual Bell", so dass das Fenster bei einem Signalton für kurze Zeit einfach die Farben umkehrt.
Ich habe eine Bash-Funktion namens Beep, um meine Aufmerksamkeit zu erregen, sobald ein Befehl beendet ist.
Und so wird es benutzt
quelle
Es könnte zu spät sein, ABER für den Kerl in der Zukunft, der danach sucht:
quelle