我使用find搜索结果从命令行快速创建了一个audacious播放列表:
mp3s=() ; while read -r -d $'\0'; do mp3s+=("$REPLY") ; done < <(find . -type f -iname "*every*.mp3" -print0) ; audacious "${mp3s[0]}" & ; for f in "${mp3s[@]:1}" ; do audtool --playlist-addurl "$f" ; done但是我认为因为我想大胆地运行,然后释放命令行来继续运行命令,所以我得到了以下错误:
bash: syntax error near unexpected token `;'如果我第一次运行,它就会被修复:
mp3s=() ; while read -r -d $'\0'; do mp3s+=("$REPLY") ; done < <(find . -type f -iname "*every*.mp3" -print0) ; audacious "${mp3s[0]}"然后:
for f in "${mp3s[@]:1}" ; do audtool --playlist-addurl "$f" ; done有没有一种方法可以将这个单行程序分成两个单独的命令,这样它们就可以作为一个命令运行?
发布于 2015-02-04 15:27:28
在不知道为什么要在每个文件上运行一个单独的audtool实例的情况下(这似乎相当低效),我建议使用下面这样更简单的方法:
find . -type f -iname "*every*.mp3" -print0 | xargs -0 audacious或者,如果一个命令行容纳不下太多的文件:
find $PWD -type f -iname "*every*.mp3" -fprint temp.m3u ; audacious temp.m3uhttps://stackoverflow.com/questions/28266341
复制相似问题