В скрипте / команде bash, как я могу издать на ПК звуковой сигнал или воспроизвести звуковой файл? - PullRequest
40 голосов
/ 17 июля 2009

У меня есть несколько долго выполняющихся сценариев с перерывами, требующими продолжения ввода / взаимодействия, но когда я переключаюсь в другое окно, я хотел бы получить (по звуку) уведомление о том, что задача выполнена, и теперь она ожидает ввода.

Я бы предпочел иметь возможность воспроизводить аудиоклип (* .mp3, * .ogg и т. Д.), Но мне было бы все равно, если единственное решение - сделать звуковой сигнал динамика ПК.

Есть идеи? Я открыт для любых утилит CLI, которые я могу установить, которые воспроизводят звуки, которые, в свою очередь, могут воспроизводиться при необходимости.

К вашему сведению: моя система работает под управлением WinXP Pro.

ОБНОВЛЕНИЕ: Дох! «Мои окна»> «Панель управления»> «Звуки»> «Звуковой сигнал по умолчанию»: было установлено значение (нет) . Хмм ...

Проблема решена.

Ответы [ 6 ]

86 голосов
/ 17 июля 2009

Это издаст звуковой сигнал изнутри Баш

echo -en "\007"
33 голосов
/ 17 июля 2009

Попробуйте это:

эхо ^ G

(^ G получается с помощью Ctrl + G).

Примечание: вы не можете скопировать и вставить этот код в командный файл, он не будет работать. Чтобы получить символ ^ G в файле, введите в окне cmd:

echo ^ G> beep.txt

(снова ^ G получается с помощью Ctrl + G).

Тогда у вас будет файл с именем beep.txt, откройте его с помощью блокнота, будет квадратный символ. Это наш ^ G, как только он будет сохранен в файле.

Затем вы можете скопировать и вставить его в пакетный файл для создания звука (не забудьте поставить перед ним «эхо»).

5 голосов

spd-say

sleep 2; spd-say 'get back to work'

Бесконечный цикл с -w, если вам нужна дополнительная мотивация:

sleep 2; while true; do spd-say -w 'get back to work'; done

Предустановлен на Ubuntu 14.04 через пакет speech-dispatcher: http://releases.ubuntu.com/trusty/ubuntu-14.04.4-desktop-amd64.manifest для слепых, наверное?

Смотри также: https://askubuntu.com/questions/277215/how-to-make-a-sound-once-a-process-is-complete

Также добавьте всплывающее окно

Этот комбо спасатель жизни, b означает beep:

b() ( spd-say 'done'; zenity --info --text "$(date);$(pwd)" & )

, а затем:

super-slow-command;b

Если я где-то в комнате, я услышу это и узнаю, что долгая работа сделана.

В противном случае я увижу всплывающее окно, когда вернусь к своему компьютеру.

Related: Как показать окно сообщения с графическим интерфейсом из скрипта bash в linux?

Слушай свой кулер

Я, конечно, шучу, но для компиляции я заметил, что я часто использую эту очередь подсознательно. Когда кулер на некоторое время перестает гудеть, это означает, что компиляция окончена!

5 голосов
/ 28 июня 2015

Установив эту переменную следующим образом

PROMPT_COMMAND="echo -en '\a'"

тогда bash будет подавать звуковой сигнал каждый раз, когда показывает подсказку Когда вам это больше не нужно,

unset PROMPT_COMMAND

5 голосов
/ 26 августа 2009

copy con beep.bat [Enter]

@ echo off [Enter]

echo [Ctrl + G] [Enter]

[Ctrl + Z] [Enter]

beep.bat [Enter]

3 голосов
/ 21 августа 2016

Для воспроизведения системного звука из командной строки Windows вы можете запустить:

rundll32 user32.dll,MessageBeep

Должно работать на всех версиях Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...