LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 799|回复: 3

如此mplayer定时播放,真累人.

[复制链接]
发表于 2004-12-16 12:59:40 | 显示全部楼层 |阅读模式
[root@shlinux public]# vi bb2
while [ 1 ] ; do
h=$(date | cut -c 12-13 );
m=$(date | cut -c 15-16 );
s=$(date | cut -c 17-18 );

if [ "$s" = "00" ]  [ "$m" = "59" ] & [ "$h" = "07" ]; then
mplayer /music/1.wav;

killall mplayer;   fi

if [ "$s" = "00" ] & [ "$m" = "59" ] & [ "$h" = "09" ]; then
mplayer /music/2.wav
killall mplayer;   fi

if [ "$s" = "00" ] & [ "$m" = "09" ] & [ "$h" = "10" ]; then
mplayer /music/3.wav
killall mplayer;   fi

if [ "$s" = "00" ] & [ "$m" = "39" ] & [ "$h" = "11" ]; then
mplayer /music/4.wav
killall mplayer;   fi

if [ "$s" = "00" ] & [ "$m" = "00" ] & [ "$h" = "12" ]; then
mplayer /music/5.wav
killall mplayer;   fi

if [ "$s" = "00" ] & [ "$m" = "04" ] & [ "$h" = "16" ]; then
mplayer /music/yemannvyou.mp3
killall mplayer;   fi

if [ "$s" = "00" ] & [ "$m" = "07" ] & [ "$h" = "16" ]; then
mplayer /music/1.haoxinfenshou.mp3
killall mplayer;   fi

if [ "$s" = "00" ] & [ "$m" = "59" ] & [ "$h" = "14" ]; then
mplayer /music/6.wav
killall mplayer;   fi

if [ "$s" = "00" ] & [ "$m" = "09" ] & [ "$h" = "15" ]; then
mplayer /music/7.wav
killall mplayer;   fi

if [ "$s" = "00" ] & [ "$m" = "29" ] & [ "$h" = "16" ]; then
mplayer /music/8.wav
killall mplayer;   fi


done
发表于 2004-12-16 16:54:51 | 显示全部楼层
为啥不用 at 呢?

  1. #!/bin/bash
  2. exec 2> /dev/null
  3. cat $1 | while read line
  4. do
  5.         time=`echo "$line" | cut -f1`
  6.         cmd=`echo "$line" | cut -f2-`
  7.         echo "$cmd" | at "$time"
  8. done
复制代码


看看这个脚本对你有没有用,它能根据一个map指定的任务来执行计划。

map  时间和 命令间用tab

1649    mplayer /datas/movies/ysw/成功人士/05.rm
1650    mplayer /datas/movies/ysw/成功人士/06.rm


执行时 ./atmap.sh map

不过,用at 执行的mplayer 输出就跑没啦,只有声音,没有图。研究一下吧。
发表于 2004-12-16 16:57:17 | 显示全部楼层
如果是每天都要执行这些工作,可以用crontab
设定每天00:01执行这个脚本。
 楼主| 发表于 2004-12-20 14:10:17 | 显示全部楼层
是的,我用crontab去执行的时候会变短,所以才出此下策..
也至今未弄明白...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表