运行 带有变量的 GNU 并行命令会导致冲突吗?

Will Running A GNU Parallel Command With Variables Cause Conflict?

我认为这归结为我没有完全理解 GNU Parallel 的进程是如何划分的。我查了一下在 GNU Parallel 中使用变量是否会发生冲突,但我在网上几乎找不到任何东西。

如果我在并行中使用如下命令:

echo "$textdata" | parallel -j5 cat | for line in file; do var1=$(echo $line); var2=$(echo "$line" | grep -A 1); var3=$(echo "$line" | somecommand); echo "$var1" "$var2" "$var3"; done 

使用变量时互相覆盖会不会冲突?或者,是否运行在不同的进程中可以使用同一个变量?

换句话说,$var1、$var2 或 $var3 会在并行的不同进程之间混淆 运行?

对于其他任何想知道 GNU parallel 中的 运行ning 变量是否会重叠的人,只需使用命令,例如:

echo "$textdata" | parallel -j5 cat | for line in file; do var1=$(echo $line); var2=$(echo "$line" | grep -A 1); var3=$(echo "$line" | somecommand); echo "$var1" "$var2" "$var3"; done 

和运行命令作为script.sh:

for line in file; do var1=$(echo $line); var2=$(echo "$line" | grep -A 1); var3=$(echo "$line" | somecommand); echo "$var1" "$var2" "$var3"; done 

因此是:

echo "$textdata" | parallel -j5 /script.sh

希望这对使用并行和变量的任何人有所帮助。