尝试运行此示例命令(来自手册页):
seq 10 | parallel echo {} + 1 is {= '$_++' =}
我收到错误
zsh: parse error near `}'
如何修复此问题并在并行命令中使用{=perl expression=}
替换字符串?
我在macOS上的iTerm 2中使用zsh。
答案 0 :(得分:4)
与任何命令一样,如果不加引号,引用zsh
将尝试解释的任何内容。
seq 10 | parallel 'echo {} + 1 is {= $_++ =}'
在这种情况下,parallel
只是将各种元素连接成一个字符串,然后将其置于自己的解析中,然后将结果传递给shell;你也可以只传递一个字符串来开始。
答案 1 :(得分:0)
(感谢@MarkSetchell)
这对我很有用:
seq 10 | parallel --parens ,,,, echo {} + 1 is ,, '$_++' ,,
将--parens
设置为,,,,
,然后将perl表达式引用为,,perl expression,,
。