LinuxSir.cn,穿越时空的Linuxsir!

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

如何写一个shell 让mplayer自动播放一个文件中的所有歌曲?

[复制链接]
发表于 2009-9-21 21:05:58 | 显示全部楼层 |阅读模式
我用ls awk 将一个目录下的所有mp3文件输入到一个文件 list中
一行一个文件名
如何写一个shell循环播放文件列表中的所有歌曲?
发表于 2009-9-21 22:16:29 | 显示全部楼层
for i in `cat test.list`;do
  mplayer $i;
done
回复 支持 反对

使用道具 举报

发表于 2009-9-22 00:41:44 | 显示全部楼层
楼主你的目的是要探讨shell?或者只是想让mplayer循环播放?
如果是后者,mplayer本身支持“播放列表”、“循环”、“乱序”等功能:
$ mplayer -playlist <listfile> -loop <n> -shuffle

如果是为了探讨shell的编写,我就不太懂了。不过楼上的方法每个循环都要调用一次mplayer,不觉得累么?当然从编程的角度看是没问题的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 09:24:24 | 显示全部楼层
是要讨论shell

for i in `cat test.list`;do
mplayer $i;
done

这个没有考虑歌曲名有空格的问题

list 文件的内容
  1. 01. First Kiss (Extended Ver).mp3
  2. 01 - Madonna - Hung Up.mp3
  3. 01_長い間.mp3
  4. 02.Give Me A Little Try - 서현진 (궁OST).mp3
  5. 02Maybe I Love You.mp3
  6. 02_未来へ.mp3
  7. 02.ひとつぶの涙.mp3
  8. 03. Hard to start (Extended Ver).mp3
  9. 06-opera.mp3
  10. 3.ガーネット.mp3
  11. bigbang.mp3
  12. Dance.mp3
  13. Delicious Way-仓木麻衣.mp3
  14. eminem 8 mile.mp3
  15. Get This ***** Started.mp3
  16. Gotta' Lot of Love.mp3
  17. jiexia.mp3
  18. list
  19. love.wma
  20. そばにいるね.mp3
  21. my love.mp3
  22. Na nana na.mp3
  23. Never say goodbye.mp3
  24. Pop.mp3
  25. say forever.mp3
  26. Seasons.mp3
  27. shinning.wma
  28. Sitting Down Here-Lene Marlin.mp3
  29. so in love.mp3
  30. Starman.mp3
  31. Symphony.mp3
  32. The Saint.mp3
  33. time afte.mp3
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 09:25:29 | 显示全部楼层
linuxsir 屏蔽了 p a r t y 这个词 ?
回复 支持 反对

使用道具 举报

发表于 2009-9-22 12:16:37 | 显示全部楼层
while read line
do
mplayer "$line"
done <list.txt

??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 13:54:15 | 显示全部楼层
Post by overawe;2029113
while read line
do
mplayer "$line"
done <list.txt

??

假如歌曲名为 01. First Kiss (Extended Ver).mp3
那么空格和括号都需要加上转义符号

需要的字符串为
01.\ First\ Kiss\ \(Extended\ Ver\).mp3
回复 支持 反对

使用道具 举报

发表于 2009-9-22 15:26:20 | 显示全部楼层
find . -name "*.mp3" -exec mplayer {} \;

devil@devil-desktop:~/音乐/tmpShell$ ls
花仙子(日文).mp3  刘若英 - 人之初.mp3

测试了这两个,没有问题。

又测试了以下
find . -name "*.mp3"|xargs mplayer  这个碰到空格就卡住了,无法使用,但是(没问题
find . -name "*.mp3"|xargs -i mplayer {} 就没问题了,两个都可以播放
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-22 17:25:52 | 显示全部楼层
Post by overawe;2029161
find . -name "*.mp3" -exec mplayer {} \;

devil@devil-desktop:~/音乐/tmpShell$ ls
花仙子(日文).mp3  刘若英 - 人之初.mp3

测试了这两个,没有问题。

又测试了以下
find . -name "*.mp3"|xargs mplayer  这个碰到空格就卡住了,无法使用,但是(没问题
find . -name "*.mp3"|xargs -i mplayer {} 就没问题了,两个都可以播放

重文件list 获取歌曲名,要如何修改呢

{} 表示什么意思啊
回复 支持 反对

使用道具 举报

发表于 2009-9-24 13:39:46 | 显示全部楼层
{}的意思就是找到的哪些文件
回复 支持 反对

使用道具 举报

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

本版积分规则

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