2011-09-20 57 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

這是一個簡單的腳本,你可以在命令行中使用它。

相關問題