GNU 与 Perl 表达式并行;zsh:在"}"附近出现解析错误



尝试运行此示例命令(从手册页):

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

我收到错误

zsh: parse error near `}'

如何解决此问题并在并行命令中使用{=perl expression=}替换字符串?

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

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

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

在这种情况下,parallel只是将各种元素连接到一个字符串中,然后在将结果传递给 shell 之前对其进行自己的解析;您不妨只传递一个字符串来启动。

(感谢@MarkSetchell)

这对我来说非常有效:

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

--parens设置为 ,,,,,然后将 perl 表达式引用为 ,,perl expression,,

最新更新