当许多测试并行执行时,如何将环境变量设置为不同的值?

时间:2016-08-10 18:50:47

标签: linux qsub

我的目标是并行启动大量测试,并将覆盖范围(*.gcda文件)转储到不同的目录中。我将使用" qsub"。但是,问题是我应该在运行每个测试之前为同一个环境变量GCOV_PREFIX设置不同的值。我不知道这是否会影响并行运行的多个测试?

例如,我有test1,test2,test3,我需要在运行test1之前设置环境变量GCOV_PREFIX = test1,在运行test2之前设置GCOV_PREFIX = test2,在运行test3之前设置GCOV_PREFIX = test3。 那么如何使用命令" qsub"来覆盖文件被转储到不同的目录中呢?

最终结果需要是各个测试文件夹中的.gcda文件,如test1 / .gcda,test2 / .gcda等。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

在SGE qsub命令中,您可以按-v设置变量列表,您可以在man page中找到更多信息。

这是一个python测试脚本test.sh:
python -c "import os;print os.getenv('GCOV_PREFIX')" 然后你可以通过以下方式提交test.sh:
qsub -v GCOV_PREFIX=TEST1 <another-options> test.sh
输出将写入test.sh.o文件。

但是如果你在~/.bashrc之类的地方设置了相同的变量:
export GCOV_PREFIX=TEST4BASHRC 输出将是 TEST4BASHRC ,也许SGE将在解析qsub的-v选项后读取用户definded配置中的变量。