不打算转义的 GNU 并行转义字符

GNU parallel escaped character that is not intend to escape

parallel --dry-run wget {1} :::: <(echo "http:://a&b")

产生

wget http:://a\&b  

如何防止 \ 出现在 & 之前?我试过 -q 选项,但输出是一样的。

您使用 eval:

parallel --dry-run eval wget {1} :::: <(echo "http:://a&b")

在 URL 中,您通常需要转义,因为否则您将在后台启动 wget 和 运行 命令 b.

这是一个(人为的)示例,其中确实有意义:

parallel eval echo {} :::: <(echo "this & echo that")

手册页中有一个不太人为的示例:https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Aggregating-content-of-files