单独执行目录中的所有文件

时间:2010-01-14 03:26:48

标签: bash macos awk

我一直在尝试编写一个shell脚本来运行目录树并播放它找到的每个mp3文件。鉴于我在Mac上,afplay是我选择的实用工具。但是,afplay一次只能使用一个参数,所以如果你想让它继续播放,你必须反复调用它。似乎最简单的解决方案如下:

$(`find . -name *.mp3 | awk '{ print "afplay \047" $0 "\047"; }' | tr '\n' ';' | sed 's/;/; /g'`)

...但是有些事情一直在被引用的逃避所困扰。为了快速参考,\ 047是'(单引号字符)的八进制,它应该将参数封装成一个,但由于某种原因它不是。我不知道这里出了什么问题。

2 个答案:

答案 0 :(得分:5)

为什么不只是find . -name '*.mp3' -exec afplay '{}' \;

答案 1 :(得分:0)

如果你的所有歌曲都是这样的话:

1. song_name.mp3
2. song_name.mp3
3. song_name.mp3  
  ...
20. song_name.mp3

播放所有20个你可以循环

for ((i=1; i<=20; i++)); do afplay $i* ; done