Я начал долгий процесс через терминал. Можно ли заставить терминал Ubuntu издавать звук после завершения процесса? Таким образом, мне не нужно постоянно проверять, но вместо этого я получу уведомление через звук.
command-line
notification
Goaler444
источник
источник
Ответы:
Есть по крайней мере три способа командной строки, для этого поместите команду suiting в конец вашего скрипта, который вы можете вызвать для вашего длительного процесса:
«Классический» способ воспроизведения звука - использовать звуковой сигнал через динамики ПК. Однако это не будет работать во всех случаях (например, в моей системе динамики компьютера полностью отключены), и вам нужно будет удалить pscpkr
/etc/modprobe/blacklist.conf
и загрузитьpcspkr
модуль ядра.Мы также можем воспроизвести любой звуковой файл в формате wav, используя aplay (установлен по умолчанию):
Другой способ - использовать интерфейс командной строки pulseaudio, чтобы включить воспроизведение любых звуковых файлов, которые ваша система (в
libsndfile
) распознает на аудиовыходе по умолчанию:Мы можем использовать звуковые файлы по умолчанию
/usr/share/sounds/
или любой другой звуковой файл, который у нас может быть в другом месте.Просто чтобы упомянуть об этом, есть еще один хороший способ добиться этого путем неправильного использования espeak , который установлен по умолчанию в Ubuntu <= 12.04. Посмотрите, вернее услышите следующий пример:
В Ubuntu> = 12.10 Orca использует говорящий диспетчер. Затем мы можем установить espeak или использовать в качестве альтернативы
spd-say "Text"
.источник
spd-say
.spd-say
Утилита установлена по умолчанию и работает в моей системе.paplay /usr/share/sounds/freedesktop/stereo/complete.oga
я использую
Замените «make» любой продолжительной командой, которую вы используете.
источник
spd-say 'get back to work
». И поставляется также предустановленным: releases.ubuntu.com/trusty/… , для слепых, я полагаю? И-w
для бесконечных цикловwhile true; do spd-say -w 'get back to work you lazy bum'; done
.TL; DR
Чтобы воспроизвести звук после завершения команды:
(где
sn3
звук № 3), поместите это в.bashrc
:Или читайте ниже для получения дополнительной информации:
Разные звуки по ошибке и успеху
Вот что я использую именно для того, что вы просите - с одним отличием: он не только воспроизводит звук при завершении команды, но и воспроизводит другой звук при успехе и при ошибке. (Но вы можете изменить это, если вам это не нравится.)
У меня есть функция Bash,
oks
которую я использую в конце длительных команд:Он воспроизводит звук и отображает OK или ERROR (с кодом ошибки), когда завершается предыдущая команда.
Исходный код
Вот эта функция с двумя помощниками:
Монтаж
Вы можете поместить его непосредственно в ~ / .bashrc или в другой файл, а затем поместить эту строку в ~ / .bashrc:
конфигурация
Поменяй
sound_ok
иsound_error
на некоторые другие звуки.Вы можете поэкспериментировать с «
sound
против»soundbg
и «изменить»sound_ok
иsound_error
использовать последовательности из множества звуков, которые вам нравятся, чтобы получить желаемый результат.Хорошие звуки
Чтобы найти хорошие звуки в вашей системе, вы можете попробовать:
Вот несколько звуков, которые я часто использую, которые доступны в Ubuntu по умолчанию и которые хороши для уведомлений - sn1 громкий и приятный, sn2 очень громкий и все же довольно приятный, sn3 чрезвычайно громкий и не очень приятный:
Опять же, вы можете изменить
sound
его,soundbg
если хотите воспроизводить его в фоновом режиме, не дожидаясь завершения звука (например, чтобы не замедлять выполнение сценариев при воспроизведении большого количества звуков).Тихая версия
И на всякий случай - здесь та же функция, что и
oks
без звуков:использование
Вот как вы используете это:
Пример с успехом:
пример с ошибкой:
Конечно, на практике команды больше похожи на:
но я использовал,
ls
чтобы вы могли быстро увидеть, как это работает.Вы можете использовать
ok
вместоoks
тихой версии.Или вы можете использовать, например:
распечатать OK / ERROR, но всегда воспроизводить один и тот же звук и т. д.
Обновить
Я поместил эти функции на GitHub, смотрите:
Источник можно скачать с:
Обновление 2
Я добавил
soundloop
функцию в репо выше. Он воспроизводит звук и может быть прерван с помощью Ctrl + C (в отличие от простого,while true; do paplay file.ogg; done
который можно ожидать, но не сработает), как спросил Шади в комментариях. Это реализовано как:Если вы считаете, что это сложно, направьте свои жалобы разработчикам PulseAudio.
источник
while true; do paplay ...; done
так, чтобы звук повторялся до тех пор, пока я не ударилCtrl+C
, но когда я это сделал, он не сломался. Я не могу найти никаких специальных опций,man paplay
чтобы выяснить, как заставить это работать. Есть идеи?В соответствии с этим
\a
символ ускользает ASCII код 7, который является сигналом компьютера.Таким образом,
echo $'\a'
работает звуковой сигнал на моем локальном компьютере, даже если он выполняется на оболочке bash, работающей на компьютере, к которому я подключен через интерфейс терминала, например PuTTY.источник
Расширяя ответ Майкла Карри, вы можете заставить Bash напечатать символ
BEL
(\a
) черезPROMPT_COMMAND
:Установка
PROMPT_COMMAND
этого способа заставит Bash выполнятьсяprintf \\a
в конце каждой команды, что заставит терминал воспроизводить звук (хотя, как указывает muru, простое инициирование перерисовки приглашения заставит терминал воспроизводить звук, т.е. будет воспроизводиться звук каждый раз выводится новое приглашение, например, даже когда вы просто нажимаете ENTER).Это функция терминала, поэтому она может работать не на всех терминалах; например, он не работает в консоли (но я уверен, что он работает в
gnome-terminal
иxterm
).источник
Команда
издает шум Самое простое, но раздражающее решение. :-)
Посмотрите в руководстве о
speaker-test(1)
вариантах настройки шумового сигнала.источник
Это не то, что вы просили, но вы можете использовать уведомление для этого.
Замените команду, приведенную в других ответах, на
источник
Пример 1:
echo alik && (say done ; echo done) || (echo error ; say error)
приведет к завершению слова.Пример 2:
non_existing_command_error && (say done ; echo done) || (echo error ; say error)
приведет к появлению слова ошибки.* Необходимо
gnustep-gui-runtime
-Приветствия.
источник
Я создал простой и почти родной скрипт, который воспроизводит звук и отображает уведомление с заданным сообщением и временем для Ubuntu ( Gist ):
Как пользоваться?
Первый запуск - настройка:
Создайте новый каталог у себя дома и назовите его
noti
Скачайте noti.sh и распакуйте его в каталог выше
noti
.Откройте терминал и измените каталог на
noti
Сделайте noti.sh исполняемым, выполнив:
Запустите тест, как это:
Примеры
Для уведомления о завершении процесса (пример)
источник
ffmpeg синусоида
Для минималистов, вы можете играть синус 1000 Гц в течение 5 секунд:
или навсегда, пока вы не нажмете Ctrl-C:
Дополнительная информация по адресу: https://stackoverflow.com/questions/5109038/linux-sine-wave-audio-generator/57610684#57610684
Протестировано в Ubuntu 18.04, ffmpeg 3.4.6.
источник