首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash:在运行应用程序后,尝试在oneliner中继续运行命令时出错

bash:在运行应用程序后,尝试在oneliner中继续运行命令时出错
EN

Stack Overflow用户
提问于 2015-02-02 02:40:34
回答 1查看 38关注 0票数 0

我使用find搜索结果从命令行快速创建了一个audacious播放列表:

代码语言:javascript
复制
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

但是我认为因为我想大胆地运行,然后释放命令行来继续运行命令,所以我得到了以下错误:

代码语言:javascript
复制
bash: syntax error near unexpected token `;'

如果我第一次运行,它就会被修复:

代码语言:javascript
复制
mp3s=() ; while read -r -d $'\0'; do mp3s+=("$REPLY") ; done < <(find . -type f -iname "*every*.mp3" -print0) ; audacious "${mp3s[0]}"

然后:

代码语言:javascript
复制
for f in "${mp3s[@]:1}" ; do audtool --playlist-addurl "$f" ; done

有没有一种方法可以将这个单行程序分成两个单独的命令,这样它们就可以作为一个命令运行?

EN

回答 1

Stack Overflow用户

发布于 2015-02-04 15:27:28

在不知道为什么要在每个文件上运行一个单独的audtool实例的情况下(这似乎相当低效),我建议使用下面这样更简单的方法:

代码语言:javascript
复制
find . -type f -iname "*every*.mp3" -print0 | xargs -0 audacious

或者,如果一个命令行容纳不下太多的文件:

代码语言:javascript
复制
find $PWD -type f -iname "*every*.mp3" -fprint temp.m3u ; audacious temp.m3u
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28266341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档