如何在zsh中转义命令输出(oneliner)

时间:2012-06-20 21:41:33

标签: zsh

我有这个精彩的音乐库应用程序:beets。

当我运行beet ls somequery -f时,我会得到一个以换行符分隔的音乐文件路径列表。不幸的是,路径包含未转义的空格,我无法像这样提供mplayer:

mplayer `beet ls smooth`

这也不起作用:

mplayer $((q)beet ls smooth)

有人能提供紧凑的解决方案吗?

2 个答案:

答案 0 :(得分:1)

使用xargs

beet ls smooth | xargs mplayer

这将保护文件名不受空格影响,但不能保护换行符。 (我假设它们不包含换行符,因为程序beet生成一个以换行符分隔的列表。)

答案 1 :(得分:1)

mplayer ${(f)"$(beet ls smooth)"}