gpt4 book ai didi

bash - 如何正确地将环境变量传递给 Sun Grid Engine?

转载 作者:行者123 更新时间:2023-11-29 09:09:16 27 4
gpt4 key购买 nike

我正在尝试向 SGE 提交(一系列)作业(FWIW,它是一系列 Gromacs 分子动力学模拟),其中所有作业都相同,除了后缀,例如 input01input02 等。我编写的命令以命令序列正确处理后缀的方式运行。

但是,我找不到让 exec 环境接收该变量的方法。根据 qsub 手册页,-v var 应该这样做。

$ export i=19
$ export | grep ' i='
declare -x i="19"
$ env | grep '^i='
i=19

然后,我提交以下脚本 (run.sh) 以查看是否收到:

if [ "x" == "x$i" ]; then
echo "ERROR: \$i not set"
else
echo "SUCCESS: \$i is set"
fi

我按如下方式提交作业(在与上面的 export 命令相同的 session 中):

$ qsub -N "test_env" -cwd -v i run.sh
Your job 4606 ("test_env") has been submitted

错误流为空,输出流有:

$ cat test_env.o4606 
ERROR: $i not set

我还尝试了以下命令,但没有成功:

$ qsub -N "test_env" -cwd -v i -V run.sh
$ qsub -N "test_env" -cwd -V run.sh
$ qsub -N "test_env" -cwd -v i=19 -V run.sh
$ qsub -N "test_env" -cwd -v i=19 run.sh

如果我在 run.sh 的开头添加一行 i=19,则输出为:

$ cat test_env.o4613
SUCCESS: $i is set as 19

我现在正在考虑为每个作业生成一个文件,这基本上是相同的,但第一行将是 i=xx 行。它看起来不太实用,但它会是一个解决方案。

还有更好的解决方案吗?

最佳答案

我一直在做的是:

##send.sh
export a=10
qsub ./run.sh

和脚本 run.sh:

##run.sh
#$ -V
echo $a

当我调用 send.sh 时,.o 的输出为 10。

关于bash - 如何正确地将环境变量传递给 Sun Grid Engine?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9719337/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com