web-dev-qa-db-fra.com

Dans un script / commande bash, comment puis-je faire un bip de PC ou lire un fichier son?

J'ai des scripts de longue durée avec des pauses nécessitant une entrée/interaction pour continuer, mais lorsque je passe à une autre fenêtre, je voudrais être informé (par le son) qu'une tâche est terminée et attend maintenant une entrée.

Je préférerais pouvoir lire un clip audio (* .mp3, * .ogg, etc.) mais je m'en fous si la seule solution est de faire du bip sonore du haut-parleur du PC.

Des idées? Je suis ouvert à tous les utilitaires CLI que je peux installer qui jouent des sons que je peux à mon tour exécuter en cas de besoin.

Pour info: mon système exécute WinXP Pro.

MISE À JOUR: Doh! Mes fenêtres> Panneau de configuration> Sons> Bip par défaut: a été défini sur (aucun) . Grrr ...

Problème résolu.

42
scunliffe

Essaye ça:

écho ^ G

(^ G est obtenu par ctrl + G).

Remarque: vous ne pouvez pas copier et coller ce code dans un fichier batch, cela ne fonctionnera pas. Pour obtenir un caractère ^ G dans un fichier, tapez dans une fenêtre cmd:

echo ^ G> beep.txt

(encore une fois, ^ G est obtenu par ctrl + G).

Ensuite, vous aurez un fichier nommé beep.txt, ouvrez-le avec le bloc-notes, il y aura un caractère carré. C'est notre ^ G une fois qu'il est enregistré dans un fichier.

Vous pouvez ensuite le copier et le coller dans un fichier batch pour faire un son (n'oubliez pas de mettre "echo" devant).

33
FWH

Cela fera un bip depuis bash

echo -en "\007"
87
Greg Reynolds

spd-say

sleep 2; spd-say 'get back to work'

Boucle infinie avec -w si vous avez besoin de motivation supplémentaire:

sleep 2; while true; do spd-say -w 'get back to work'; done

Pré-installé sur Ubuntu 14.04 via le package speech-dispatcher: http://releases.ubuntu.com/trusty/ubuntu-14.04.4-desktop-AMD64.manifest pour les aveugles je suppose?

Voir aussi: https://askubuntu.com/questions/277215/how-to-make-a-sound-once-a-process-is-complete

Ajoutez également une fenêtre contextuelle

Ce combo est un épargnant de vie, b signifie beep:

b() ( spd-say 'done'; zenity --info --text "$(date);$(pwd)" & )

puis:

super-slow-command;b

Si je suis quelque part dans la pièce, je vais l'entendre et je sais que le long travail est terminé.

Sinon, je verrai la fenêtre lorsque je reviendrai sur mon ordinateur.

En relation: Comment afficher une boîte de message GUI à partir d'un script bash sous linux?

Écoutez votre glacière

Je plaisante bien sûr, mais pour la compilation, j'ai remarqué que j'utilise souvent cette file d'attente inconsciemment. Lorsque la glacière cesse de fredonner pendant un certain temps, cela signifie que la compilation est terminée!

copy con beep.bat [Entrée]

@echo off [Entrée]

écho [Ctrl + G] [Entrée]

[Ctrl + Z] [Entrée]

beep.bat [Entrée]

5
naveen

En définissant cette variable comme suit

Prompt_COMMAND="echo -en '\a'"

bash émet un bip chaque fois qu'il affiche l'invite. Lorsque vous n'en avez plus besoin,

unset Prompt_COMMAND

5
am70

Pour lire le son du système à partir de la ligne de commande Windows, vous pouvez exécuter:

rundll32 user32.dll,MessageBeep

Cela devrait fonctionner sur toutes les versions de Windows.

3
viktor-zin