Je le fais. sudo apt-get update
de temps en temps, et je trouve frustrant de devoir vérifier quand il a fini de faire son travail. Est-il possible de faire en sorte qu'il affiche une fenêtre de notification ou qu'il émette un son lorsqu'il a fini de s'exécuter, afin que je puisse continuer à travailler ?
Réponses
Trop de publicités?Un son pour lequel je ne peux pas vous aider. Cependant, si vous ajoutez quelque chose comme
&& notify-send "Task complete."
après votre commande, vous devriez voir apparaître une notification dans le coin supérieur droit. Si le paquet requis n'est pas installé par défaut, sudo apt-get install libnotify-bin
devrait l'obtenir pour vous. Le site &&
exécutera une deuxième commande si la première se termine avec succès.
Ce que vous voulez, c'est sudo apt-get update; alert
. Ce qui suit est une explication et une justification.
- À partir du terminal, vous pouvez lister de nombreuses commandes à exécuter en séquence. Ce que vous voulez, c'est d'abord la commande qui prend beaucoup de temps, et ensuite une commande de notification.
- Pour exécuter les commandes en séquence, vous les séparez avec l'une ou l'autre des options suivantes
&&
o;
. Ceux-ci ont deux significations distinctes :command-a && command-b
signifie que la commande-a sera exécutée en premier, et ensuite, si elle a réussi la commande-b sera exécutée ;command-a; command-b
signifie que la commande-a sera exécutée en premier et ensuite la commande-b, si la commande-a a réussi ou non . Vous voulez probablement le point-virgule : vous voulez être informé lorsque la mise à jour ou la mise à niveau a cessé de fonctionner, qu'elle se soit terminée avec succès ou non. - D'autres répondants vous ont suggéré des alertes audio et à l'écran. Ma propre préférence va à
notify-send
qui prend deux paramètres : un titre et un contenu :sudo apt-get update; notify-send update finished
(si l'un des paramètres contient des espaces, mettez-les entre guillemets). -
Beaucoup plus rapide et facile à taper que
notify-send title content
esalert
. Cet alias est intégré à bash par défaut dans au moins certaines versions d'Ubuntu, et il est assez facile de l'ajouter s'il est absent de la vôtre (utilisertype alert
pour vérifier s'il est présent). Vous devriez obtenir la réponse,alert is aliased to `notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e 's/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//')"'
Cela signifie qu'il va simplement extraire la dernière commande et l'envoyer à
notify-send
et que l'icône qui l'accompagne sera l'image d'un terminal (pour une commande réussie) ou une image d'erreur (pour une commande échouée).La vie est maintenant devenue encore plus simple :
command; alert
est très rapide et facile à taper. L'alerte contiendra une indication de la réussite ou de l'échec de la commande, et l'alerte contiendra une indication de la réussite ou de l'échec de la commande.
Par ailleurs, j'ai parfois été ennuyé par le fait que je ne pouvais pas envoyer la sortie vers notify-send
J'ai donc écrit une petite fonction qui le fait pour moi :
notify ()
{
while read input; do
notify-send -i $(ls /usr/share/icons/gnome/32x32/emotes | sed 's/\(.*\)\..*/\1/' | shuf -n1) "message" "$input";
done
}
Cela me permet de taper command | notify
. Dans ce cas, l'icône est toutefois aléatoire. De plus, vous recevez une notification pour chaque ligne de sortie, ce qui n'est sans doute pas un bon choix pour apt-get update
.
Pour les fichiers compatibles avec aplay
Pour diffuser un son personnalisé dans les haut-parleurs, vous pouvez lancer l'opération suivante
aplay <path_to_sound_file>
*<path_to_sound_file> = chemin d'accès au fichier sonore
pour lire le fichier sonore choisi ; ensuite, vous pouvez ajouter un bouton playsound
alias pour ~/.bashrc
:
alias playsound='aplay <path_to_sound_file>'
*<path_to_sound_file> = chemin d'accès au fichier sonore
De cette façon, vous pouvez exécuter sudo apt-get update && playsound
pour jouer le son choisi lorsque sudo apt-get update
a fini de fonctionner.
Pour les fichiers non compatibles avec aplay (par exemple, les fichiers .ogg) (sons système)
Pour diffuser un son personnalisé dans les haut-parleurs, vous pouvez lancer l'opération suivante
pacmd list-sinks | grep -E 'index|device.product.name'
pour énumérer tous les pulseaudio
Les index des éviers disponibles de l'entreprise ainsi que les périphériques correspondants.
pacmd play-file /usr/share/sounds/ubuntu/stereo/bell.ogg <sink_index> > /dev/null
*<sink_index> = <code>pulseaudio</code> Indice de l'évier
pour jouer /usr/share/sounds/ubuntu/stereo/bell.ogg
par l'intermédiaire du puits choisi (vous pouvez bien sûr jouer n'importe quel son que vous voulez) ; vous pouvez alors ajouter une playsound
alias pour ~/.bashrc
:
alias playsound='pacmd play-file /usr/share/sounds/ubuntu/stereo/bell.ogg <sink_index> > /dev/null'
*<sink_index> = <code>pulseaudio</code> Indice de l'évier
De cette façon, vous pouvez exécuter sudo apt-get update && playsound
pour jouer le son choisi lorsque sudo apt-get update
a fini de fonctionner.
J'ai écrit un petit scripts pour le faire. scripts est situé dans github .
Voici le guide d'installation :
Installation
Télécharger ou simplement cloner le dépôt
$ git clone git@github.com:c0rp-aubakirov/notify_after_command_executed.git
Puis ajouter le sourcing du script. postexec_notify
à votre .bashrc
.
Voici git clone
exemple d'installation :
$ cd ~
$ git clone git@github.com:c0rp-aubakirov/notify_after_command_executed.git
$ cd ~/notify_after_command_executed
$ echo "source $(pwd)/postexec_notify" >> ~/.bashrc
Maintenant, redémarrez votre terminal. Après le redémarrage, vous devriez voir ces messages :
preexec.sh is not exist
Trying to download it from github
Maintenant, essayez de tester si la notification apparaît :
$ sleep 6
Veuillez me faire savoir si quelque chose n'est pas clair ou si vous avez des problèmes.