[sf-lug] system beep
akkana at shallowsky.com
Fri Jan 8 10:17:05 PST 2010
> On Thu, 2010-01-07 at 17:49 -0800, Alex Kleider wrote:
> > if at the linux command line (bash shell) I type
> > $ echo $'\a'
> > the bell rings
> when i use the command
> $ echo $'\a'
Another way is to tell bash to print the beep character (ctrl-G, ASCII 7):
$ echo -e "\007"
But when I put either one in a script and run it through at, the
problem seems to be that at is redirecting the output, so the ctrl-G
never goes to a terminal that can turn it into sound. Try adding
some visible text in your script:
echo BEEP $'\a'
and you'll see that you never see the BEEP either if you call it
If you explicitly redirect it to a terminal, it works.
For instance, type tty to find out what your current terminal is,
then put that in the script:
echo BEEP $'\a' >/dev/pts/1
and call it from at, and it should work (it did for me).
But that's not very convenient if you want to schedule a script to run
days fom now, since you'd have to be sure what pty is there that
you can write to.
If your script can run as root, you could use the console:
echo $'\a' >/dev/console
Or if you're pretty sure you'll be logged in on the console as
your own user, you could use tty0 or tty1:
echo $'\a' >/dev/tty1
More information about the sf-lug