【问题标题】:Individually Execute All Files in a Directory单独执行目录中的所有文件
【发布时间】:2011-01-04 22:35:06
【问题描述】:

我一直在尝试编写一个 shell 脚本来遍历目录树并播放它找到的每个 mp3 文件。鉴于我在 Mac 上,afplay 是我选择的实用程序。然而,afplay 一次只接受一个参数,所以如果你想让它继续播放,你必须一遍又一遍地调用它。似乎最简单的解决方案如下:

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

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

【问题讨论】:

    标签: bash macos awk


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-06
        • 1970-01-01
        • 2015-02-01
        • 2012-05-18
        相关资源
        最近更新 更多