Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 单独执行目录中的所有文件_Bash_Macos_Awk - Fatal编程技术网

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

Bash 单独执行目录中的所有文件,bash,macos,awk,Bash,Macos,Awk,我一直在尝试编写一个shell脚本来遍历目录树并播放它找到的每个mp3文件。考虑到我在mac电脑上,afplay是我选择的实用工具。然而,afplay一次只接受一个参数,所以如果你想让它继续播放,你必须反复调用它。似乎最简单的解决方案如下: $(`find . -name *.mp3 | awk '{ print "afplay \047" $0 "\047"; }' | tr '\n' ';' | sed 's/;/; /g'`) …但在引用的逃逸过程中,有些东西不断被卷入。为了快速参考,\

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

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

…但在引用的逃逸过程中,有些东西不断被卷入。为了快速参考,\047是“(单引号字符)的八进制,它应该将参数封装成一个,但由于某些原因,它不是。我不知道这里出了什么问题。

为什么不干脆
查找-名称'*.mp3'-exec afplay'{}'\

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

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
((i=1;i)的