如何在linux中创建系统生成的警报音,而不使用任何外部音频文件?

时间:2011-09-20 08:18:52

标签: linux unix

我有一个linux shell脚本,我需要每隔30分钟运行一次,所以我正在使用这样的无限for循环:

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

我希望在清除之前添加一行代码,以便在每次脚本执行之前,系统会生成警报音或声音,这将使用户意识到已经过了30分钟的间隔并且脚本再次执行。有办法吗?

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

2 个答案:

答案 0 :(得分:1)

您可以向BEL发出^G个字符(字符代码7,/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)

对于简单的音调,您可以使用beep命令。您可以在debian存储库中找到此命令,包名称为beep

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