GNU 与 Perl 表达式并行; zsh: `}' 附近的解析错误

GNU parallel with Perl expression; zsh: parse error near `}'

尝试运行这个示例命令(来自手册页):

seq 10 | parallel echo {} + 1 is {= '$_++' =}

我收到错误

zsh: parse error near `}'

如何解决这个问题并在并行命令中使用 {=perl 表达式=} 替换字符串?

我在 macOS 上的 iTerm 2 中,使用 zsh。

与任何命令一样,引用任何内容 zsh 如果不加引号,将尝试解释自身。

seq 10 | parallel 'echo {} + 1 is {= $_++ =}'

在这种情况下,parallel 只是将各种元素连接成一个字符串,然后 对其进行自己的解析,然后再将结果传递给shell;你也可以只传递一个字符串开始。

(感谢 @MarkSetchell

这对我来说非常有效:

seq 10 | parallel --parens ,,,, echo {} + 1 is ,, '$_++' ,,

--parens 设置为 ,,,, 然后将 perl 表达式引用为 ,<i>perl 表达式</i>, .