На этот вопрос уже есть ответ здесь:
Я делаю sudo apt-get update
время от времени, и мне неприятно проверять, когда он сделал свое дело. Могу ли я заставить его предлагать всплывающее уведомление или воспроизводить звук, когда он завершит выполнение, чтобы я мог продолжить свою работу?
Я записал небольшие сценарии для создания его. Сценарий расположен в github.
Вот руководство по инсталляции:
Загрузка или просто клонируется, repo
$ git clone git@github.com:c0rp-aubakirov/notify_after_command_executed.git
Затем добавляют определение источника сценария postexec_notify
к Вашему .bashrc
.
Вот git clone
пример установки:
$ cd ~
$ git clone git@github.com:c0rp-aubakirov/notify_after_command_executed.git
$ cd ~/notify_after_command_executed
$ echo "source $(pwd)/postexec_notify" >> ~/.bashrc
Теперь перезапускают Ваш терминал. После перезапуска необходимо видеть, что это обменивается сообщениями:
preexec.sh is not exist
Trying to download it from github
Теперь попытка протестировать, если уведомление появляется:
$ sleep 6
сообщите мне, неясно ли что-то, или у Вас есть любые проблемы.
Звук я не могу помочь Вам с. Однако при добавлении чего-то как
&& notify-send "Task complete."
после команды необходимо видеть, что уведомление открывается в правом верхнем углу. Если необходимый пакет не установлен по умолчанию, sudo apt-get install libnotify-bin
должен получить его для Вас. Эти &&
выполнит вторую команду, если первое завершится успешно.
Для проигрывания пользовательского звука через динамики можно работать
aplay <path_to_sound_file>
* <path_to_sound_file> = соединяют каналом к звуковому файлу
играть выбранный звуковой файл; затем можно добавить a playsound
псевдоним к ~/.bashrc
:
alias playsound='aplay <path_to_sound_file>'
* <path_to_sound_file> = соединяют каналом к звуковому файлу
Таким образом, можно работать sudo apt-get update && playsound
играть выбранный звук когда sudo apt-get update
закончил работать.
Для проигрывания пользовательского звука через динамики можно работать
pacmd list-sinks | grep -E 'index|device.product.name'
перечислять все pulseaudio
доступные приемники' индексируют наряду с их соответствующим устройством; затем можно работать
pacmd play-file /usr/share/sounds/ubuntu/stereo/bell.ogg <sink_index> > /dev/null
* <sink_index> = pulseaudio
индекс приемника
играть /usr/share/sounds/ubuntu/stereo/bell.ogg
через выбранный приемник. (Конечно, можно играть любой звук, который Вы хотите); затем можно добавить a playsound
псевдоним к ~/.bashrc
:
alias playsound='pacmd play-file /usr/share/sounds/ubuntu/stereo/bell.ogg <sink_index> > /dev/null'
* <sink_index> = pulseaudio
индекс приемника
Таким образом, можно работать sudo apt-get update && playsound
играть выбранный звук когда sudo apt-get update
закончил работать.
То, что Вы хотите, sudo apt-get update; alert
. То, что следует, является объяснением и объяснением.
&&
или ;
. Они имеют два отличных значения: command-a && command-b
средства, которые команда-a выполнит сначала, и затем, если это было успешно, команда-b, будут работать; command-a; command-b
средства, которые команда-a будет выполнять сначала и затем управлять-b, будут работать, была ли команда-a успешна. Вы, вероятно, хотите точку с запятой: Вы хотите быть уведомленными, когда обновление или обновление прекратили работать, вышло ли оно успешно.notify-send
, который берет два параметра: заголовок и содержание: sudo apt-get update; notify-send update finished
(если любой параметр содержит пробелы, включите их в кавычки).Намного более быстрый и легче ввести, чем notify-send title content
alert
. Этот псевдоним встроен в удар по умолчанию по крайней мере в некоторых версиях Ubuntu и достаточно легок добавить, отсутствует ли это в Вашем (использование type alert
проверять, присутствует ли это). Необходимо получить ответ,
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$//')"'
Это означает, что просто вытащит последнюю команду и отправит его в notify-send
, и что сопроводительный значок будет изображением терминала (для успешной команды) или ошибочным изображением (для неудавшейся команды).
Жизнь теперь стала еще более простой: command; alert
очень быстро и легок ввести. Это предупредит, была ли команда успешна, и предупреждение будет содержать признак того, была ли команда успешна.
Кстати, меня иногда раздражало, что я не могу передать вывод по каналу к notify-send
, таким образом, я записал немного функции, чтобы сделать это для меня:
notify ()
{
while read input; do
notify-send -i $(ls /usr/share/icons/gnome/32x32/emotes | sed 's/\(.*\)\..*/\1/' | shuf -n1) "message" "$input";
done
}
Это позволяет мне вводить command | notify
. Значок в этом случае случаен, как бы то ни было. Кроме того, Вы получаете уведомление для каждой строки вывода, который является, вероятно, не хорошим выбором для apt-get update
.
Можно добавить что-то как
&& echo -e "\007"
в конец строки. Попытайтесь делать
sudo apt-get update && sudo apt-get -y upgrade && echo -e "\007"
Hope, которая помогает