I have a script running in the background and sends me an alert every few minutes. I want the alert to be in the form of a beep.

Question: How can I play a beep in mac terminal?


printf \\a and osascript -e beep play the default alert sound, but they are silent if the alert volume is set to zero. printf \\a is also silent if an audible bell is disabled.

You could also use afplay or say:

afplay /System/Library/Sounds/Funk.aiff
say done

There are more sound effect files in /System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/Sounds/.

  • I was using say till now, afplay did the trick. Thanks! – rk. May 22 '13 at 22:19
  • 2
    Sweet! You can use say -v ? (in Yosemite, at least) to get a list of voices installed -- I had several! Here's a little script to say what you want in every available voice: for i in $(say -v \? | awk '{print $1;}'); do echo $i; say -v $i "Build terminated\!"; done – scorpiodawg Jan 27 '15 at 17:25
  • In macOS Catalina, I had to use say -v '?' with single quotes because of zsh. – Funktional Nov 12 '20 at 1:51

The simplest way is the use a bell echo -e "\a"

  • 2
    Didn't work for me. Do I need a package? – rk. May 22 '13 at 21:37
  • What version of OS X are you on? Also, check your terminal emulator's settings, and make sure you don't have bell disabled. – demure May 22 '13 at 21:38
  • Ah! Terminal sounds were not enabled. Also, is there a decent bell/alert compared to the dull thud sound this command makes? – rk. May 22 '13 at 21:41
  • I use iTerm2 myself, which uses growl (so bells go to growl), via growl I add another sound to iTerm2 alerts. Yeah, kind of round-about. – demure May 22 '13 at 21:45
  • Ohk, I will use that setup as a last resort ;) – rk. May 22 '13 at 21:50

Another way is to echo ^G. But you don't literally type the ^G. Instead, type ctrl+v, ctrl+g, which will appear as echo ^G.

  • @tmanok On a mac? ctrl+G by itself does not do anything for me on a mac. – wisbucky Feb 20 '18 at 19:52
  • Oh? It does on Sierra and Yosemite for me.... Odd – Tmanok Feb 21 '18 at 6:33
  • But it isn't working on my 10.6 machine- maybe some of my CLI Tools or Homebrew is screwing with it. I'll retract my comment, apologies. – Tmanok Feb 21 '18 at 6:34

tput bel works in most shells.

From this answer on a related Stack Overflow question:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.