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
bash обратный отсчет (вверх?) Таймер w/будильник: улучшения?
я решил недавно экспериментировать с/техника обучения pomodoro работы и, так как я обычно работаю с компьютером, хотел, чтобы иметь возможность сколотить обратный отсчет/вверх таймер с тревогой, которая работает на компьютере в который я работаю. Вкратце, я хотел посчитать минутный или минутный интервал 25 минут или 5 минут, затем подать звуковой сигнал - звуковой сигнал, который будет звучать до сброса. Я хотел, чтобы это, кстати, было не-gui-решением, которое я могу запустить с терминала
Поиск в Интернете, я придумал что-то, что работает (в основном взято из http://www.commandlinefu.com/commands/view/5886/countdown-clock) - см. Выше. Он подсчитывает и отображает время, оставшееся на минуты, и, когда указанный интервал заканчивается, он воспроизводит отличительный, но довольно ненавязчивый шаблон колокола системы (использует программу «звуковой сигнал») каждые 5 секунд, пока не будет введен ctrl + c в терминале, с которого был запущен скрипт.
Как я уже сказал, все, что я собрал, похоже, удовлетворит мои потребности адекватно. Но так как мое понимание bash довольно ограничено, так как, глядя на сценарий, должно быть очевидно любому, у кого есть опыт работы с bash-скриптами - я думал, что спрошу здесь, какие улучшения могут быть внесены в этот скрипт? Может ли он быть сконденсирован и/или, возможно, использовать разные утилиты для достижения того же конца, но более элегантным образом? Вход будет оценен.
LATER EDIT: предложение Zoltan о замене MIN=1 && for i in $(seq $(($MIN*5)) -1 1);
на for i in $(seq 5 -1 1);
, мне кажется, несколько упрощает и улучшает сценарий, который я опубликовал. Таким образом, более разумной версией этого как однострочного является 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
. Версия, которую он опубликовал, кажется гораздо более способным и гибким сценарием, поэтому я буду отмечать его как лучший ответ. Хотя хорошо иметь такой вариант, я думаю, что я продолжу и придерживаюсь версии, которую я создал (в том числе небольшое улучшение, предложенное Золтаном, и одно, которое я придумал, добавляя знак хеша каждый раз, когда звуковой сигнал выключается [ для того, чтобы дать мне представление, если я должен покинуть компьютер, как долго он сидел) - часть printf " # "
), которая имеет временный интервал, закодированный в сценарий. Спасибо за ввод.
Я пробовал этот скрипт, и он работает по строкам, которые я предполагал. Он намного более гибкий и способный, чем то, что я изначально разместил. Поэтому я буду отмечать это решение как лучший ответ, хотя, скорее всего, я продолжу использовать слегка измененную версию сценария, который я опубликовал на начальном этапе. – MJiller