如何并行替换引号内的变量

How can i replace variables inside quotation marks in parallel

我想 运行 并行执行一个将两个变量输入 gnuplot 文件的命令,我试过:

parallel 'OMP_NUM_THREADS=11 gnuplot -e 'alpha={}; file="{}.txt"' graf_separation_time.gp' ::: 0 1 2 3 4 5 6 7 8 9 10 

但是不行,有什么建议吗?

您正在使用“内部”攻击。引用很难正确,所以通常更容易定义一个函数,测试它,然后让 GNU Parallel 调用它。

未测试:

gp() {
  OMP_NUM_THREADS=11 gnuplot -e 'alpha='""'; file="'""'.txt" graf_separation_time.gp'
}
export -f gp
parallel gp {} ::: 0 1 2 3 4 5 6 7 8 9 10 

这可能也有效:

parallel -q OMP_NUM_THREADS=11 gnuplot -e 'alpha={}; file="{}.txt" graf_separation_time.gp' ::: 0 1 2 3 4 5 6 7 8 9 10 

阅读更多:https://www.gnu.org/software/parallel/man.html#quoting