尝试运行此示例命令(从手册页):
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,,
。