J'aimerais 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 l'avoir installée via apt.
Quelle pourrait être la raison?
Commencez par exécuter Sudo modprobe pcspkr
puis beep
devrait fonctionner.
La raison en est que, par défaut, Ubuntu ne charge plus le pilote matériel qui émet des bips.
Si cela fonctionne pour vous, alors pour permettre le chargement de pcspkr, éditez de manière permanente le fichier /etc/modprobe.d/blacklist.conf
(en utilisant gksudo gedit
peut-être) et mettez en commentaire la ligne qui dit blacklist pcspkr
afin qu'elle ressemble à ceci:
Bruit # laid et fort, sur les nerfs de tout le monde; cela devrait être fait par # Nice Nice pulseaudio bing (Ubuntu: # 77010) # blacklist pcspkr
N'étant pas un fan du bip pcspkr, j'utilise un bip d'un des sons système avec la commande paplay du serveur pulseaudio installé.
Recherchez d’abord un son que vous aimez (vous pouvez par exemple parcourir/usr/share/sounds) et créez une référence à celui-ci.
export BEEP=/usr/share/sounds/ubuntu/ringtones/Harmonics.ogg
Ensuite, ayez-le disponible comme commande
alias beep='paplay $BEEP'
Maintenant, lancez simplement beep
chaque fois que vous en avez besoin. Par exemple, pour vous alerter quand une commande est terminée:
find . | grep treasure ; beep
Comme il s'agit d'une question très bien notée sur Google, j'ajouterai les étapes que j'ai suivies pour réactiver le bip dans la console et X11:
Comme déjà répond , le pilote du noyau pcspkr
pour le haut-parleur PC est mis à l'index dans Ubuntu.
Activer temporairement jusqu'au redémarrage:
Sudo modprobe pcspkr
Activer automatiquement au démarrage:
Sudo nano /etc/modprobe.d/blacklist.conf
(supprimez ou commentez la ligne pcspkr
en la préfixant avec #
)
gnome-terminal
par défaut)Sous X, comme avec Unity, KDE, Gnome Shell, les événements sonores 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 que PulseAudio joue au bip, bell.ogg
, est vide par défaut. De plus, le volume de la sonnerie peut être mis en sourdine.
Pour activer temporairement 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 existe d'autres exemples appropriés que vous pouvez essayer à /usr/share/sounds
, par exemple, consultez ceux de /usr/share/sounds/gnome/default/alerts/
Notez que le programme beep
n'est pas vraiment nécessaire. Mais s'il est installé, il utilise le haut-parleur du PC. C'était le seul moyen que je pouvais trouver pour activer la sonnerie sous X:
Sudo apt-get install beep
Pour l'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
Buzz!
Pour résoudre ce problème de manière persistante:
gconf-editor
et si le paramètre desktop | gnome | peripherals | keyboard | bell_mode
est présent, remplacez-le de off
par on
dconf-editor
et si le paramètre org | gnome | settings-daemon | peripherals | keyboard | bell-mode
est présent, remplacez-le de off
par on
pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.ogg
dans le fichier ~/.xprofile
(vous avez besoin de gnome-control-center-data
pour glass.ogg
)[ "$DISPLAY" ] && xset b 100
au fichier ~/.bashrc
Le moyen le plus simple d'activer cette solution consiste à redémarrer.
De plus, pour implémenter cette solution immédiatement pour une fenêtre de terminal déjà ouverte, exécutez la commande pactl
et la commande xset
dans la fenêtre de terminal en question.
J'ai rencontré ce problème auparavant. D'après mes souvenirs, le problème est que la sonnette du terminal essaie de faire sonner le haut-parleur interne d'un ordinateur (comme sur un ordinateur de bureau à l'ancienne), mais les ordinateurs portables et certains ordinateurs plus récents manquent une telle chose.
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
J'ai finalement trouvé une solution qui ne nécessite pas alsamixer
pour 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 bogue , lancez pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg
Pour autant que je sache, il s'agit d'un bogue: Bip du système brisé en karmique malgré les efforts héroïques pour le réparer .
Si vous avez des haut-parleurs connectés à l'ordinateur et que vous n'entendez pas de bip, c'est probablement parce que vous utilisez Compiz. Compiz compte sur pulseaudio pour capter les bips et les jouer pendant que Métacity contourne la configuration habituelle et utilise libcanberra pour émettre un bip. Si cela fonctionne avec metacity et non compiz, c’est votre problème, sinon la réponse fournie par torque est correcte.
" Le bip ne fonctionne que si votre PC est équipé 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é un fichier Nice wav qui semble être court et sympathique, mais vous pouvez choisissez le vôtre aussi. Ça marche pour moi quand tout le reste a échoué.
Une approche alternative - réglez votre xterm/console sur "Visual Bell" de sorte que, quand il émettra un bip, la fenêtre inversera simplement ses couleurs pendant un court instant.
J'ai une fonction bash appelée beep pour attirer mon attention une fois la commande terminée.
beep () { while true; do echo -en '\a'; sleep 1; done }
Et il est utilisé de cette façon
longrun-command ; beep