Как сделать аппаратный звуковой сигнал в Mac OS X 10.6 - PullRequest
162 голосов
/ 27 июня 2010

Я просто хочу, чтобы Mac OS X 10.6 издавала аппаратный звуковой сигнал, как в open suse и других дистрибутивах.Я попробовал следующие подходы

Терминал -> beep = -bash: beep: команда не найдена

Терминал -> say beep = голос произносит звуковой сигнал (не аппаратный сигнал, но потрясающий;))

яблочный скрипт -> звуковой сигнал = звонок Macintosh (я хочу аппаратный звуковой сигнал!)

Кто-нибудь знает, как сделать аппаратный звуковой сигнал в bin / bash или applecript?

Ответы [ 15 ]

248 голосов
/ 06 июня 2011

tput bel работает в большинстве оболочек.

В OS X эта (и любая другая команда, вызывающая отключение звонка) также дает вам значок, если команда выполняется, когда Терминал не был на переднем плане:

132 голосов
/ 06 июля 2012

Печать \a не всегда работала у меня (MBA, 10.7.4). Я использую это вместо:

say "beep"
96 голосов
/ 14 октября 2013

Действительно, следующее эффективно и несколько мелодично:

say -v Bells "dong dong dong"

[Обновление] К сожалению, Bells больше не входит в последнюю версию OS X. Попробуйте:

say -v Victoria Do your homework!

Используйте следующее для изучения голосов:

say -v \?
55 голосов
/ 28 июня 2010

напишите echo ^G в bash. для создания ^G нажмите ctrl+v, а затем ctrl+g.

27 голосов
/ 20 февраля 2015

Это зациклит все голоса (работает на Yosemite):

say -v '?' | awk '{print $1}' | while read voice; do printf "using $voice...\n"; say -v $voice "hello, this is me using the $voice voice"; sleep 1; done
25 голосов
/ 13 июля 2011

В терминале типа:

echo -e "\a"

Параметр -e указывает эхо обрабатывать экранированные символы.Поскольку \ n является символом новой строки, \ a является символом колокольчика (так же, как Ctrl + G).

23 голосов
/ 18 мая 2017

В macOS нет "аппаратного звукового сигнала".

Функциональность, о которой вы думаете, является артефактом очень старого (до 1990-х годов) IBM PC-совместимого оборудования.До того, как у большинства компьютеров были звуковые карты, у большинства машин был небольшой динамик или пьезо-зуммер, подключенный к одному из каналов чипа таймера.Это может быть использовано для генерации простых тонов или звуковых сигналов.Даже после того, как на многих компьютерах были встроены звуковые карты, в течение довольно долгого времени компьютеры оставались обычными для направления этого выхода на отдельный внутренний динамик.В последнее время многие компьютеры, особенно ноутбуки, интегрировали эту функцию в встроенную звуковую карту.

(Если вам интересны технические подробности работы интерфейса динамика ПК, , есть дополнительные подробностиздесь .)

Это оборудование никогда не существовало в компьютерах Apple.Единственный доступный аудиовыход - через звуковую карту, а единственный системный звуковой сигнал в macOS - это звуковой сигнал пользователя.

17 голосов
/ 27 января 2018

Воспроизведение произвольного звукового сигнала с помощью afplay

Я удивлен, что никто не упомянул afplay: это программа командной строки, которая воспроизводит произвольные звуковые файлы.Это было со времен оригинальных выпусков OS X (и NeXTSTEP, если ваша память такая длинная).

Например, вы можете запустить это из командной строки или поместить в скрипт:

$ afplay /System/Library/Sounds/Ping.aiff

Вы не ограничены системными звуками;Одним из преимуществ использования afplay является то, что вы можете выбрать свой собственный звуковой файл в качестве предупреждения.Например, вы можете загрузить один из этих звуковых файлов и выбрать свой любимый.

(Дополнительные очки, если вы можете найти запись звонка телетайпа модели 33!)

13 голосов
/ 04 ноября 2015

В терминалах OS X выполните команду: osascript -e 'beep'

Используя технологию OSA (Open Script Architecture), чтобы сказать AppleScript выполнить команду beep.

9 голосов
/ 19 марта 2012
printf "\a"

Если вы посмотрите на man printf, вы получите список экранированных символов, включая \a:

\a      Write a <bell> character.
...