2011-09-20 60 views
0

我有一个Linux shell脚本,我需要在每30分钟间隔运行,所以我使用了一个无限for循环是这样的:如何在linux中创建系统生成的警报音,而不使用任何外部音频文件?

for ((i=0;;i++)) 
do 
clear; 
./myscript.sh; 
sleep 30m; 
done 

我想明确之前添加一行代码,以便在脚本每次执行之前,系统会生成警报音或声音,这会使用户意识到30分钟的时间间隔已经过去,并且脚本正在执行。任何方式都可以这样做?

我目前没有任何外部的.wav文件在我的系统中可以作为警报播放。好意提示。

回答

1

您可以发出BEL字符(char code 7,^G)至/dev/console。注意只有root才可以这么做。

使用适当的转义码,您甚至可以控制哔哔声的长度和频率。

例如,下面的代码构成,在cron作业运行,一个布谷鸟钟:-)

#!/bin/sh 
h=$(((`date +%k`+11)%12+1)) 
echo -en "\033[11;200]" >/dev/console 
for ((i=0; i<h; i++)); do 
     echo -en "\033[10;600]\a" 
     usleep 200000 
     echo -en "\033[10;490]\a" 
     usleep 500000 
done >/dev/console 
echo -en "\033[10;750]\033[11;100]" >/dev/console 
+1

+1为咕咕钟。 – shellter

1

对于一个简单的音,你可以使用beep命令。您可以在debian存储库中找到这个命令,软件包名称是beep

这是一个简单的脚本,你可以在命令行中使用它。

相关问题