MIN=1 && for i in $(seq $(($MIN*5)) -1 1); do echo -n "$i, "; sleep 60; done; while :; do beep -r 25 -l 3; sleep 5; done
compte à rebours bas (haut?) Minuterie w/alarme: améliorations?
j'ai décidé récemment d'expérimenter la technique de travail/apprentissage pomodoro et, puisque je travaille habituellement avec un ordinateur, voulait être en mesure de concocter un compte à rebours/minuteur avec alarme qui fonctionne sur la machine que je travaille En bref, je voulais décompter/augmenter soit un intervalle de 25 minutes ou 5 minutes, par minute, puis avoir une alarme sonore - une alarme qui retentira jusqu'à la réinitialisation. En passant, je voulais que ce soit une solution non-gui que je puisse exécuter à partir d'un terminal
En cherchant sur le web, j'ai trouvé quelque chose qui fonctionne (principalement pris de http://www.commandlinefu.com/commands/view/5886/countdown-clock) - voir ci-dessus. Il décompte et affiche le temps restant par minutes et, lorsque l'intervalle spécifié se termine, il joue un schéma de sonnerie distinctif mais relativement non intrusif (utilise le programme "bip") toutes les 5 secondes jusqu'à ce que ctrl + c est entré dans le terminal à partir duquel le script a été exécuté. Comme je l'ai dit, ce que j'ai mis ensemble semble correspondre à mes besoins de façon adéquate. Mais depuis que ma compréhension de bash est assez limitée - comme, en regardant le script, devrait être évidente à quiconque ayant une expérience de bash-scripting - je pensais que je demanderais ici quelles sortes d'améliorations pourraient être apportées à ce script? Peut-il être encore condensé, et/ou peut-être utiliser différents utilitaires pour atteindre le même but, mais d'une manière plus élégante? L'entrée sera appréciée.
PLUS TARD EDIT: La suggestion de Zoltan de remplacer MIN=1 && for i in $(seq $(($MIN*5)) -1 1);
par for i in $(seq 5 -1 1);
me semble quelque peu simplifier et améliorer le script que j'ai posté. Donc, une version plus raisonnable de ce comme un one-liner serait for i in $(seq 5 -1 1); do echo -n "$i, "; sleep 60; done; while :; do beep -r 25 -l 3; printf " # "; sleep 5; done
. La version qu'il a posté semble un script beaucoup plus capable et flexible, donc je vais le marquer comme la meilleure réponse. Bien qu'il soit bon d'avoir une option comme celle disponible, je pense que je vais continuer avec la version que j'ai créée (y compris la légère amélioration suggérée par Zoltan et celle que j'ai inventée qui ajoute un signe de hachage chaque fois que le bip retentit pour me donner une idée, au cas où je devrais quitter l'ordinateur, depuis combien de temps il bipe] - la partie printf " # "
) qui a l'intervalle de temps codé en dur dans le script. Merci pour la contribution.
J'ai essayé ce script et il fonctionne selon les lignes que j'avais imaginé. Il est beaucoup plus flexible et capable que ce que j'ai initialement posté. Donc, je vais marquer cette solution comme la meilleure réponse, même si je vais probablement continuer à utiliser une version légèrement modifiée du script que j'ai posté initialement. – MJiller