加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 22:06:53 所属栏目:安全 来源:网络整理
导读:我正在尝试向SGE提交一系列(一系列)工作(FWIW,它是Gromacs分子动力学模拟的一系列),其中所有工作都是相同的,除了后缀,如input01,input02等.我写了命令以一系列方式运行,后缀由命令序列正确处理. 但是,我找不到让exec环境接收该变量的方法.根据qsub手册页,-v
我正在尝试向SGE提交一系列(一系列)工作(FWIW,它是Gromacs分子动力学模拟的一系列),其中所有工作都是相同的,除了后缀,如input01,input02等.我写了命令以一系列方式运行,后缀由命令序列正确处理.

但是,我找不到让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

我按如下方式提交作业(与上面的导出命令在同一会话中):

$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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读