J'ai entamé un long processus via un terminal. Est-il possible de faire sonner le terminal Ubuntu une fois le processus terminé? De cette façon, je n'ai pas besoin de continuer à vérifier, mais je serai averti par un son.
command-line
notification
Goaler444
la source
la source
Réponses:
Pour ce faire, il existe au moins trois méthodes en ligne de commande, en plaçant la commande correspondante à la fin de votre script, que vous pouvez appeler pour votre long processus:
La manière "classique" de jouer un son consiste à utiliser un bip sonore via les haut-parleurs du PC. Cependant, cela ne fonctionnera pas dans tous les cas (par exemple, dans mon système, les haut-parleurs PC sont complètement désactivés) et vous devrez supprimer pscpkr de
/etc/modprobe/blacklist.conf
et charger lepcspkr
module du noyau.Nous pouvons également jouer n’importe quel fichier son au format wav en utilisant aplay (installé par défaut):
Une autre solution consiste à utiliser l'interface de ligne de commande pulseaudio pour permettre la lecture de tous les fichiers son que votre système (in
libsndfile
) reconnaît sur la sortie audio par défaut:Nous pouvons utiliser des fichiers son par défaut à partir de
/usr/share/sounds/
, ou tout autre fichier son que nous pouvons avoir à un emplacement différent.Juste pour l'avoir mentionné, il existe un autre moyen intéressant d'y parvenir en utilisant à mauvais escient Espeak , qui est installé par défaut dans Ubuntu <= 12.04. Voir, ou plutôt entendre l'exemple suivant:
Dans Ubuntu> = 12.10 Orca utilise le répartiteur de parole. Nous pouvons ensuite installer espeak , ou bien utiliser
spd-say "Text"
.la source
spd-say
.spd-say
utilitaire est installé par défaut et fonctionne sur mon système.paplay /usr/share/sounds/freedesktop/stereo/complete.oga
j'utilise
Remplacez "make" par la commande longue que vous utilisez.
la source
spd-say 'get back to work
'. Et vient également pré-installé: releases.ubuntu.com/trusty/… , pour les aveugles je suppose? Et-w
pour des boucles infinies:while true; do spd-say -w 'get back to work you lazy bum'; done
.TL; DR
Pour jouer un son après la fin de la commande:
(où
sn3
est le son numéro 3) mettez ceci dans.bashrc
:Ou lisez ci-dessous pour plus d'options:
Son différent sur l'erreur et le succès
Voici ce que j'utilise exactement pour ce que vous demandez - à une différence près: il ne joue pas seulement un son lorsque la commande est terminée, il diffuse un son différent en cas de succès ou d'erreur. (Mais vous pouvez le changer si vous ne l'aimez pas.)
J'ai une fonction Bash appelée
oks
que j'utilise à la fin de longues commandes:Il émet un son et affiche OK ou ERROR (avec le code d'erreur) à la fin de la commande précédente.
Code source
Voici cette fonction avec deux assistants:
Installation
Vous pouvez le mettre directement dans votre ~ / .bashrc ou le placer dans un autre fichier, puis mettre cette ligne dans votre ~ / .bashrc:
Configuration
Changer
sound_ok
etsound_error
à d'autres sons.Vous pouvez expérimenter avec
sound
contresoundbg
et le changementsound_ok
etsound_error
d'utiliser des séquences de nombreux sons que vous aimez pour obtenir le résultat que vous voulez.Bons sons
Pour trouver de bons sons sur votre système, vous pouvez essayer:
Voici quelques sons que j'utilise souvent et qui sont disponibles par défaut sur Ubuntu et qui conviennent aux notifications: le sn1 est fort et agréable, le sn2 est très fort et toujours aussi joli, le sn3 est extrêmement fort et pas si gentil:
Encore une fois, vous pouvez passer
sound
àsoundbg
si vous voulez le jouer en arrière-plan sans attendre la fin du son (par exemple, pour ne pas ralentir vos scripts lorsque vous jouez beaucoup de sons).Version silencieuse
Et juste au cas où - voici la même fonction que
oks
mais sans sons:Usage
Voici comment vous l'utilisez:
Exemple avec succès:
exemple avec erreur:
Bien sûr, dans la pratique, les commandes ressemblent davantage à:
mais j'ai utilisé
ls
pour que vous puissiez voir rapidement comment cela fonctionne.Vous pouvez utiliser à la
ok
place deoks
pour une version silencieuse.Ou vous pouvez utiliser par exemple:
pour imprimer OK / ERROR tout en reproduisant le même son, etc.
Mise à jour
J'ai mis ces fonctions sur GitHub, voir:
La source peut être téléchargée à partir de:
Mise à jour 2
J'ai ajouté une
soundloop
fonction au rapport ci-dessus. Il joue un son et peut être interrompu par Ctrl + C (contrairement à un simplewhile true; do paplay file.ogg; done
que l'on s'attendrait à travailler mais ce n'est pas le cas), comme l'a demandé shadi dans les commentaires. Il est implémenté comme:Si vous pensez que c'est compliqué, adressez vos plaintes aux développeurs de PulseAudio.
la source
while true; do paplay ...; done
ce que le son se répète jusqu'à ce que je frappeCtrl+C
, mais quand je le fais, ça ne casse pas. Je ne trouve aucune option spécialeman paplay
pour savoir comment faire en sorte que cela fonctionne. Des idées?Selon cela, le
\a
caractère échappe au code ASCII 7, qui est le bip de l'ordinateur.Cela
echo $'\a'
fonctionne donc pour émettre un bip sonore sur ma machine locale, même si elle est exécutée sur un shell bash fonctionnant sur un ordinateur auquel je suis connecté via une interface de terminal telle que PuTTY.la source
En développant la réponse de Michael Curries, vous pouvez faire en sorte que Bash imprime un caractère
BEL
(\a
) à traversPROMPT_COMMAND
:En définissant
PROMPT_COMMAND
cette méthode, Bash s'exécuteraprintf \\a
à la fin de chaque commande, ce qui fera que le terminal émettra un son (bien que, comme l'indique le muru, déclencher simplement le rafraîchissement de l'invite incitera le terminal à reproduire le son, c'est-à-dire que le son sera joué. chaque fois qu'une nouvelle invite est dessinée, par exemple, même lorsque vous frappez ENTER).Il s’agit d’une fonctionnalité de terminal; il est donc possible que cela ne fonctionne pas sur tous les terminaux; Par exemple, cela ne fonctionne pas dans la console (mais je suis sûr que cela fonctionne dans
gnome-terminal
etxterm
).la source
La commande
fait un bruit de bruit. La solution la plus simple mais ennuyeuse. :-)
Consultez le manuel de
speaker-test(1)
pour les options permettant de configurer le signal de bruit.la source
Ce n'est pas ce que vous avez demandé, mais vous pouvez utiliser la notification pour cela.
Remplacez la commande donnée dans les autres réponses par
la source
Exemple 1:
echo alik && (say done ; echo done) || (echo error ; say error)
donnera un mot fini.Exemple 2:
non_existing_command_error && (say done ; echo done) || (echo error ; say error)
entraînera un mot d'erreur.* Besoins
gnustep-gui-runtime
-À votre santé.
la source
J'ai créé un script simple et presque natif qui lit le son et affiche une notification avec un message et une heure donnés pour Ubuntu ( Gist ):
Comment utiliser?
Première exécution - Mise en place:
Créez un nouveau répertoire chez vous et appelez-le
noti
Téléchargez noti.sh et extrayez-le dans le répertoire ci-dessus
noti
.Ouvrir le terminal et changer de répertoire pour
noti
Rendre noti.sh exécutable en émettant:
Exécutez un test comme ceci:
Exemples
Pour notifier la fin du processus (exemple)
la source
ffmpeg onde sinusoïdale
Pour les minimalistes, vous pouvez jouer un sinus à 1000 Hz pendant 5 secondes:
ou pour toujours jusqu'à ce que vous fassiez Ctrl-C:
Plus d'informations sur: https://stackoverflow.com/questions/5109038/linux-sine-wave-audio-generator/57610684#57610684
Testé sous Ubuntu 18.04, ffmpeg 3.4.6.
la source