LinuxSir.cn,穿越时空的Linuxsir!

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

循环播放的问题

[复制链接]
发表于 2009-9-24 15:57:31 | 显示全部楼层 |阅读模式

  1. #!/bin/sh
  2. play=2;
  3. if [ $1 = "-l" ] ; then
  4. play=1;
  5. shift;
  6. fi

  7. while [ $play > 0 ]
  8. do
  9.         if [ $# == 0 ] ; then
  10.                 break;
  11.         fi  
  12.         echo "Media Name : " $1;   
  13.         mplayer $1 > /dev/null
  14.         if [ $play != 1 ] ; then
  15.                 shift;
  16.         fi  
  17. done
复制代码

这个脚本有些问题,
使用
./play -l music1.mp3 music2.mp3
运行该脚本
只能播放第一首歌曲,我也知道原因,是因为$play这里不等于1 所以没有将参数*出。
但是如果我将参数*出,那么我就无法循环播放music1.mp3 music2.mp3

我现在想写的一个脚本是在接收到 -l 参数的时候,循环播放 后面的N个音乐文件,
在没有-l参数的时候,每首歌曲只播放一遍,我要如何做呢?

感谢所有提供帮助的朋友!
 楼主| 发表于 2009-9-24 18:08:33 | 显示全部楼层
http://hi.baidu.com/tsuibin/blog ... 4641d3f2d385be.html



  1. #!/bin/bash

  2. function playMusic(){
  3. for m in $argv ;do
  4. echo "music name : $m";
  5. coreplayer ~/Music/$m > /dev/null ;
  6. done
  7. }

  8. function loopplay(){
  9. while [ 1 ]
  10. do
  11. playMusic
  12. done
  13. }

  14. argv=$*;
  15. argc=$#;

  16. if [ $1 == "-l" ];then
  17. shift
  18. argv=$*;
  19. argc=$#;
  20. loopplay
  21. else
  22. playMusic
  23. fi
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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