В месте, где я работаю, есть команды, выполнение которых занимает много времени.
Есть ли команда / утилита, которую я могу использовать, чтобы уведомить меня об окончании выполнения команды? Это может быть всплывающее окно или небольшой звук.
command-line
unix
process
notifications
Уткарш Синха
источник
источник
fg;say "Job finished"
это сработает. Но ... есть ли способ, которым это может быть дополнительно автоматизировано - т.е. позвонить в звонок или уведомить после завершения любой работы, которая занимает больше порога, например, минуту? Существует ли переменная оболочки, например, в bash, по истечении времени последней команды?Ответы:
Как правило, если вы знаете это до запуска команды, вы можете просто запустить ее с:
Это выполнит
command-after
после выхода предыдущей команды (независимо от кода выхода).&
Запустит его в фоновом режиме.Если вы заботитесь об успешном или неудачном завершении, соответственно используйте:
Если команда уже запущена, вы можете использовать управление заданиями для ее приостановки, а затем вернуть ее на передний план с
fg
цепочкой вместе с вашим уведомлением:Теперь ... что вы хотите сделать после этого, зависит от вашей среды.
В любой системе вы можете «позвонить» в терминал звонка . Зависит от вашей конкретной системы, что действительно работает (BSD против GNU Linux и т. Д.), Но
tput bel
должно делать. Я не мог надежно проверить это прямо сейчас, хотя. Ищите «звонок», чтобы узнать больше.В Mac OS X вы можете использовать AppleScript, чтобы открыть диалоговое окно Finder:
Вы могли бы это сказать вам кое-что:
Или вы можете использовать систему уведомлений Mountain Lion:
В GNOME ,
zenity
может показать диалоговое окно GTK, вызываемое из командной строки. См. Также этот вопрос переполнения стека: отображение окна сообщения из скрипта bash в linux . Его можно установить через ваш любимый менеджер пакетов.Некоторые дистрибутивы могут иметь
xmessage
. Специально для сред GTK, естьgxmessage
.В средах рабочего стола, которые реализуют Спецификацию уведомлений рабочего стола , таких как Ubuntu и GNOME , есть система уведомлений, с которой вы можете запускать
notify-send
(частьlibnotify
).KDE использует
kdialog
, например:источник
(command; command-after) &
?В Unix-подобных системах вы можете позвонить в звуковой звонок:
источник
tput bel
Я создал простой инструмент для MacOS X, который делает именно это. https://github.com/vikfroberg/brb
Монтаж
инструкции
источник
Для получения звукового уведомления вы можете использовать
spd-say "Some text"
. Пример:источник
sudo apt-get install speech-dispatcher
. Или используйте альтернативы askubuntu.com/questions/501910/…Я только начал использовать notifu для настольных уведомлений от Cygwin. Это приложение уведомлений командной строки для Windows.
Пример:
источник
Я написал
ntfy
именно для этой цели. Он кроссплатформенный и может автоматически отправлять уведомления по окончании длительных команд.Если у вас есть Python
pip
(в большинстве дистрибутивов Linux и MacOS он есть), вот как его установить и включить автоматические уведомления:Проверьте это на http://ntfy.rtfd.io
В дополнение к этому, он также может:
источник
Для Linux есть изящная хитрость, которая делает это автоматически без необходимости каждый раз вводить команду для уведомления.
Сначала установите автоключ. Это помогает определить действия для различных нажатий клавиш.
Теперь определите новую фразу в autokey и назначьте горячую клавишу как Alt + Enter. Добавьте эту фразу:
Обратите внимание, что новая строка после первой строки важна.
Также добавьте оконный фильтр. Я использую гуаке и терминал. Включите любой другой терминал, который вы используете.
Вы сделали !!
Теперь каждый раз, когда вам нужно получать уведомления о команде, запускайте ее, используя Alt + Enter вместо Enter / Return.
Источник: http://dotpad.blogspot.in/2014/12/notification-when-command-finished.html
источник
Хотя другие ответы уже охватывали большинство способов получения уведомлений о выполненной работе, я хочу дать свои два цента, поскольку вы задали свой вопрос в следующем формате:
У меня точно такая же проблема. Иногда что-то может длиться 15 минут.
У меня есть следующая функция в моем .bashrc:
Это использует приложение Pushover для отправки уведомления на мой телефон. Таким образом, я могу пойти на обед или принять участие во встрече и получать уведомления о вакансиях, которые я запустил на своем компьютере, прежде чем уйти.
Я использую это следующим образом:
Таким образом, если команда возвращает правильный код завершения, будет выполнено первое нажатие. При ошибке будет выполнен второй.
Ofc вам нужно создать пользователя на Pushover и зарегистрировать приложение для отправки уведомлений с https://pushover.net/
надеюсь, это помогло!
источник
Если вы используете csh или tcsh в качестве интерактивной оболочки, вы можете использовать
notify
команду:Вы можете добиться аналогичного эффекта в bash с помощью
set -b
илиset -o notify
.Это, вероятно, не соответствует вашим требованиям, поскольку все, что он делает, это печатает сообщение; Я не думаю, что он может быть настроен для всплывающего окна или звонка.
источник
На системах с 'awk' попробуйте
был единственным, кто работал на меня.
источник
\a
( ответ trinth в ).Если вы используете,
npm
то Node-Notifier предоставляет кроссплатформенное решение .предварительный просмотр
источник
Жаль, что я не заметил эту тему лет назад. Мое решение было практически таким же, как у slhck, но я написал сценарий. Я пользуюсь этим все время. Публиковать здесь, чтобы поделиться им.
Небольшое объяснение: строка
"\x1b]0;$msg\a"
является escape-последовательностью ANSI для помещения сообщения в строку заголовка окна, из которого оно было выполнено. Мне иногда бывает удобно видеть, из какого окна пришло сообщение.источник
Так что это происходит довольно поздно, но я начал использовать систему для этого: у меня есть скрипт bash, который выполняет любую команду, переданную ему впоследствии
http://somesh.io/2017/02/19/get-notified-when-long-commands-are-done-executing-on-ubuntu/
а потом я просто добавляю n
источник
Другая возможность заключается в использовании
alert
, работает на Linux.Выдает уведомление как на картинке. оповещение
источник
Я сделал приложение, которое отправит уведомление на ваш телефон Android, когда процесс завершится, чтобы вам не пришлось привязываться к компьютеру.
Установите, затем добавьте
;notifier.sh
в конец вашей команды.Например, если ваша команда была
make install
, вы бы сделали свою команду:make install; notifier.sh
https://notifier.sh
https://play.google.com/store/apps/details?id=sh.notifier
источник