|
用法:
./beep #连续响三下
./beep -l 4 #重复4次连响三下,4次之间有停顿
./beep -s 30 #30秒后连响三下
./beep -% 2/3 #计算出一分钟按三分之二是多少秒,等待该时段后连响三下
./beep -m 2:31 #2分31秒后连响三下
./beep -h 5:3:24 #5小时3分24秒后连响三下
五个参数可以重复使用,也可以联合使用,时间累加,但-l参数以最后一次为准
源码:等同于附件!!!
#!/bin/bash
function alarm(){
sleep 0.7
printf "\7"
sleep 0.3
printf "\7"
sleep 0.3
printf "\7";
}
n_time=0
for((j=1;j<=$#;j+=2))
do
eval k=\$$j
if [ $k == "-s" ];then
eval k=\$$[j+1]
n_time=$[n_time+k]
elif [ $k == "-%" ];then
eval k=\$$[j+1]
n_time=$[n_time + ${k%/*} * 60 / ${k#*/}]
elif [ $k == "-m" ];then
eval k=\$$[j+1]
n_time=$[n_time + ${k#*:} + 60 * ${k%:*}]
elif [ $k == "-h" ];then
eval k=\$$[j+1]
eval m=${k#*:}
n_time=$[n_time + ${m#*:} + 60 * ${m%:*} + 3600 * ${k% m}]
elif [ $k == "-l" ];then
eval n_loop=\$$[j+1]
fi
done
if [ $n_time -ne 0 ];then
echo sleep ${n_time}s
sleep $n_time
fi
if [[ -n $n_loop ]];then
for((i=0;i<$n_loop;i++))
do
alarm
done
else
alarm
fi |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|