На этот вопрос уже есть ответ:
Я использую Xubuntu 15.04, но, возможно, у этого вопроса есть общее решение для всех разновидностей Ubuntu.
Я обычно оставляю длинные вычисления в окне терминала, которые могут занять от пары минут, до часов или дней. Было бы неплохо, если бы я мог каким-то образом предупреждать, когда терминал завершает выполнение команды. Это должно быть необходимо только для терминалов, которые сведены к минимуму.
Есть ли способ настроить что-то подобное? В идеале окно терминала могло бы мигать или, может быть, отображалось уведомление.
Существует несколько путей, и с &&
(логичны И) оператор (который работает только когда последняя команда, за которой следуют). Если Вы хотите выполнить уведомление независимо от того, ли команда, за которой следуют или неудавшийся, используйте точку с запятой ;
вместо &&
.
Графический
myscript.sh && notify-send 'DONE'
Аудио:
myscript.sh && aplay /usr/share/sounds/speech-dispatcher/test.wav
Примечание, можно использовать любой звуковой файл вместо того, который я использовал здесь.
Оба:
myscript.sh && aplay /usr/share/sounds/speech-dispatcher/test.wav && notify-send 'DONE !'
Вы можете использовать zenity для отображения всплывающего окна.
После команды оболочки добавьте
&& zenity --info --text "STRING"
Я предлагаю использовать libnotify's notify-send
для уведомлений. Я создал следующий сценарий, чтобы сделать это:
#!/bin/bash
$1 && \
notify-send -u critical -i info 'Command execution finished' "The command '$1' terminated successfully" || \
notify-send -u critical 'Command execution failed' "The command '$1' exited with errors"
, Если Вы сохраняете выше сценария в названном файле, например, nexec
и делаете его исполняемым файлом с помощью chmod +x nexec
, и перемещают программу в каталог в оболочках PATH
переменная, (например, /usr/local/bin/
), можно выполнить любую команду с
nexec 'long-time-command some arguments'
, Например,
nexec 'sudo apt-get update && apt-get dist-upgrade'
, libnotify будет (по крайней мере, он делает так в моей системе, я предполагаю, что это может отличаться между различными рабочими столами), уведомления о дисплее, отмеченные как 'очень важный', пока они не отклоняются вручную (например, путем нажатия на них). Поскольку можно взять из кода, Вы получите другое уведомление, если команда возвратит ненулевой результат.
Вы когда-либо слышали о , не отвлекают - меня ? Кажется, что это соответствует Вашим потребностям и его коду, это находится на github.
я думаю, что пакет находится в официальной Ubuntu repos, так должен быть достаточен
sudo apt-get install undistract-me
затем, необходимо закрыть и вновь открыть любой терминал, который Вы имеете, только чтобы позволить изменениям вступить в силу, и можно протестировать его с простым
sleep 11
, Не забывают изменять активное окно, иначе Вы не будете видеть уведомления.