Question Bip en script shell ne fonctionne pas?


Je voudrais utiliser un bip dans un script shell. Malheureusement, aucune des méthodes que j'ai trouvées via Google ne fonctionne pour moi.

j'ai essayé

echo -e '\a'

echo -ne '\007'

et la commande beep après je l'ai installé via apt.

Quelle pourrait être la raison?


74
2018-01-03 20:37


origine


Voir ce rapport de bogue: bugs.launchpad.net/ubuntu/+source/unity/+bug/769314 - Flimm
superuser.com/questions/47564/… || unix.stackexchange.com/questions/1974/… || stackoverflow.com/questions/10313939/… - Ciro Santilli 新疆改造中心 六四事件 法轮功


Réponses:


Première exécution sudo modprobe pcspkr et alors beep devrait marcher.

La raison en est que, par défaut, Ubuntu ne charge plus le pilote matériel qui produit des signaux sonores.

Si cela fonctionne pour vous, alors pour activer le chargement de pcspkr, éditez en permanence le /etc/modprobe.d/blacklist.conf fichier (en utilisant gksudo gedit peut-être) et commenter la ligne qui dit blacklist pcspkr donc ça ressemble à ça:

# moche et bruit bruyant, agitant tous les nerfs; cela devrait être fait par un
# sympa pulseaudio bing (Ubuntu: # 77010)
# blacklist pcspkr

80
2018-01-03 20:44



Si je commente blacklist pcspkr je dois faire modprobe -r pcspkr && modprobe pcspkr pour le faire fonctionner. Faire aussi bip pour travailler est ne pas la même chose que la sonnerie audible pour fonctionner et ainsi askubuntu.com/questions/22168/how-do-i-enable-the-terminal-bell devrait toujours être ouvert. - daithib8
Cela ne marche pas pour moi dans Ubuntu 14. - Cerin


N'étant pas un fan du bip pcspkr, j'utilise un bip de l'un des sons du système avec la commande de jeu du serveur pulseaudio installée.

Trouvez d'abord un son que vous aimez (vous pouvez parcourir / usr / share / sounds pour certains disponibles par exemple) et y créer une référence

export BEEP=/usr/share/sounds/ubuntu/ringtones/Harmonics.ogg

Alors, disponible en commande

alias beep='paplay $BEEP'

Maintenant, lancez beep chaque fois que vous en avez besoin. Par exemple, pour vous alerter lorsqu'une commande est terminée:

find . | grep treasure ; beep

82
2017-07-27 00:28



Pouvez-vous le faire jouer ce son quand quelqu'un court echo -e '\a' - Flimm
Vous pourriez avoir besoin de lis commande dans une boucle while ou dans une autre bibliothèque pouvant surveiller les frappes. - yuvilio
C'est une excellente solution! Maintenant je peux faire run-my-long-test-suite.sh; beep et lire le stackoverflow jusqu'à ce que le système soit prêt. - jamesc
Agréable! j'utilise export BEEP=/usr/share/sounds/ubuntu/stereo/dialog-information.ogg et alias beep='paplay $BEEP --volume=32768' maintenant, ça marche bien pour moi. (Notez que vous pouvez remplacer le volume avec le beep alias, par ex. beep --volume=15000 joue au volume de -12dB.) - leftaroundabout
La lecture de ces fichiers ogg peut entraîner des ordres de grandeur de latence supérieurs à ceux du bip interne du haut-parleur du PC. Non seulement la latence semble très variable. Je reconnais que la plupart des gens ne se soucient pas, mais lorsque vous avez besoin d'une réactivité en temps réel ou en temps quasi réel, le haut-parleur du PC est probablement la meilleure option pour un retour audible. - H2ONaCl


Pour résoudre ce problème de manière persistante:

  • Courir gconf-editor et si le desktop | gnome | peripherals | keyboard | bell_mode le réglage est présent puis le changer de off à on
  • Courir dconf-editor et si le org | gnome | settings-daemon | peripherals | keyboard | bell-mode le réglage est présent puis le changer de off à on
  • Ajouter pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.ogg au fichier ~/.xprofile (vous avez besoin gnome-control-center-data pour glass.ogg)
  • Ajouter [ "$DISPLAY" ] && xset b 100 au fichier ~/.bashrc

Le moyen le plus simple d'activer cette solution est de redémarrer.

En outre, pour implémenter cette solution immédiatement pour une fenêtre de terminal déjà ouverte, exécutez le pactl commander et exécuter le xset commande dans la fenêtre de terminal en question.


21
2017-12-12 12:33



J'ai mis le pactl upload-sample commande dans un script shell, mais votre méthode est plus organisée. Merci! - JoBu1324
Si vous mettez le pactl commande en ~/.xprofileil est exécuté au début de la session GUI. - jdthood
le dconf-editor version du bell-mode réglage semble être org.gnome.settings-daemon.peripherals.keyboard. - lgarzo
@lgarzo: Merci pour le conseil. Je vais mettre à jour la réponse. - jdthood
@ Hibou57: Assurez-vous d'avoir le paquet contenant glass.ogg installée - Janus Troelsen


Puisqu'il s'agit d'une question de très haut niveau sur Google, j'ajouterai les étapes que j'ai effectuées pour réactiver le bip sur la console et sur X11:


Pour la console Linux (CTRL+ALT+F1...F6):

Pourquoi cela ne fonctionne pas par défaut

Comme déjà répondu, la pcspkr Le pilote du noyau pour le PC Speaker est mis en liste noire dans Ubuntu.

Activer temporairement jusqu'au redémarrage:

sudo modprobe pcspkr

Activer automatiquement au démarrage:

sudo nano /etc/modprobe.d/blacklist.conf

(supprimer ou commenter pcspkr ligne en le précédant avec #)


Pour les terminaux X11 (tels que les terminaux par défaut gnome-terminal)

Pourquoi cela ne fonctionne pas par défaut

Sous X, comme avec Unity, KDE, Gnome Shell, les événements de bip sont capturés par PulseAudio grâce à module-x11-bell, qui est chargé par défaut à /usr/bin/start-pulseaudio-x11. Et l’échantillon sonore PulseAudio joue au bip, bell.ogg, est vide par défaut. De plus, le volume de la cloche peut être coupé.

Pour activer temporairement pour la session en cours,

xset b 100  # perhaps not needed, on my system it was 40 by default
pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg

Il y a d'autres échantillons appropriés que vous pouvez essayer à /usr/share/sounds, par exemple vérifier celles à /usr/share/sounds/gnome/default/alerts/

Notez que le beep le programme n'est pas vraiment nécessaire. Mais s'il est installé, il utilise le haut-parleur du PC. C'était le seul moyen de trouver le signal sous X:

sudo apt-get install beep

Pour activer automatiquement au démarrage, ajoutez simplement les lignes ci-dessus dans votre ~/.profile, ou à l'échelle du système à /etc/profile


Pour le tester:

printf '\a'

Bip!

beep

Bourdonner!


17
2018-02-19 11:36



Pour activer automatiquement un bip de haut-parleur PC au démarrage, vous devez réellement commentaire ladite ligne dans /etc/modprobe.d/blacklist.conf ne le décommentez pas (vous voulez désactiver la liste noire, et non l'inverse). - o'rety
@ o'rety: merci, je l'ai édité! :) - MestreLion
Les deux solutions fonctionnent sur Ubuntu 16.04 Remarque: pcspkr et bell.ogg sont des approches indépendantes. beep essaie de biper en utilisant diverses approches, par exemple, ioctl(console_fd, KIOCSOUND, period) utilisation pcspkr (le son provient du haut-parleur du PC sur la carte mère) alors que printf '\a' Cette méthode peut fonctionner sans elle bell.ogg (le son provient de haut-parleurs ordinaires). La seconde méthode pourrait ne pas fonctionner jusqu'à ce que le service pulseaudio soit démarré et / ou xset b on est couru - jfs
le pactl upload-sample ... était d'or pour moi. Quelle est la manière de configurer de manière permanente le chargement de l'échantillon à nouveau? - ulidtko
@ulidtko: Ajoutez simplement ces lignes à vos lignes ~/.profile, ou à l'échelle du système à /etc/profile - MestreLion


J'ai déjà rencontré ce problème auparavant. D'après ce dont je me souviens, le problème est que la sonnerie du terminal tente de faire sonner un haut-parleur d'ordinateur interne (comme sur un ancien ordinateur de bureau), mais il manque des ordinateurs portables et des ordinateurs plus récents.

La seule solution que j'ai trouvée à l'époque était de sudo apt-get install sox et

play -n synth <duration in seconds> sine <freq in Hz> vol <volume (0-1)>

par exemple.

 play -n synth 0.1 sine 880 vol 0.5

11
2017-12-11 23:04



Essayez ma solution - J'aimerais savoir si cela fonctionne pour vous! - JoBu1324
vous pouvez également utiliser le test du haut-parleur - Janus Troelsen
Vous pouvez aussi avoir une belle sonorité de guitare: play -q -n synth 2 pluck C5. C5 est la note. - Pablo Bianchi


Si vous avez des haut-parleurs réels connectés à l'ordinateur et que vous n'obtenez pas de bip, c'est probablement parce que vous utilisez compiz. Compiz compte sur pulseaudio pour capter les bips et les jouer pendant que la métacité contourne la configuration habituelle et utilise libcanberra pour jouer un bip. Si cela fonctionne avec la métacité et non avec le compiz, c'est votre problème, sinon la réponse donnée par htorque est corrent.


2
2018-01-03 20:56





Autant que je sache, c'est un bug: Système bip sonore dans Karmic malgré les efforts héroïques pour le réparer.


2
2018-01-03 20:43



"Non activé par défaut" ne signifie pas cassé, et aucun "effort héroïque" n'est nécessaire: juste modprobe pcsprk (en console) ou pactl upload-sample ... dans X11 et le bip ennuyeux est de retour :) - MestreLion


J'ai finalement trouvé une solution qui ne nécessite pas alsamixer avoir une option PC Beep. Je pense que je me souviens de tous mes changements:

décommentez ce qui suit dans /etc/pulse/default.pa:

load-sample-lazy x11-bell /usr/share/sounds/ubuntu/stereo/bell.ogg
load-module module-x11-bell sample=bell-windowing-system

par ce bug, courir pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg


2
2017-12-11 23:09



J'ai essayé ça, pactl m'a donné Connection failure: Connection refused pa_context_connect() failed: Connection refused. - YodaDaCoda
Peut être ce fil aidera - si vous avez déjà exécuté pulseaudio en tant que root. - JoBu1324
J'ai un problème différent, en fait. Pulseaudio lance Failed to open module "module-esound-protocol-unix": file not found. Probablement pas la peine d’en discuter ici puisque j’utilise la version 13.04, même si j’aimerais pouvoir vérifier votre solution. - YodaDaCoda
Nice, juste des lignes légèrement différentes pour 15.04. - VRR


"Le bip ne fonctionne que si votre PC dispose d'un haut-parleur. De nombreux ordinateurs portables / petits appareils modernes n'en ont pas ».

Essayez de jouer un son comme celui-ci: play xxxxx.wav   J'ai trouvé une belle wav fichier qui semble être court et doux, mais vous pouvez également choisir le vôtre. Fonctionne pour moi quand tout le reste a échoué.


Grâce à: tredegar Et hk_centos


1
2018-03-05 23:00