将环境变量传递给 qsub 作业
Pass environment variable to qsub jobs
我想在 qsub 命令的 PATH 环境变量中添加一个字符串。编辑 .sh 文件不是一个选项,因为它是在管道内生成和 运行(我可以编辑 qsub 命令选项)。
我运行正在执行以下 qsub 命令:
qsub -pe slots 16 -S /bin/bash -cwd -N "pipeline" -j y -o
/home/user/log/out.log /home/user/pipeline/runthis.sh
我需要将以下 PATH 环境变量添加到 shell 中 运行:
/home/user/jre1.8.0_66/bin
(这是因为脚本依赖的 java 版本比集群上的更新版本)。
我尝试了以下方法:
qsub -pe slots 16 -S /bin/bash -cwd -N "pipeline" -j y -o
/home/user/log/out.log /home/user/pipeline/runthis.sh -v
PATH=/home/pa354/jre1.8.0_66/bin:$PATH -V
这没有用,我在 bash 文件中添加了 'env' 运行(检查环境变量),我需要的路径没有添加。
您需要在 qsub
命令中使用 -v
:
qsub -v JAVA_HOME ...
这会将环境变量从调用环境传递到生成的作业中。
请注意,qsub
的 -v
参数必须位于您在远程节点上 运行 的实际命令的参数之前。您似乎已经在整个命令行的末尾尝试了它,但行不通。
我想在 qsub 命令的 PATH 环境变量中添加一个字符串。编辑 .sh 文件不是一个选项,因为它是在管道内生成和 运行(我可以编辑 qsub 命令选项)。
我运行正在执行以下 qsub 命令:
qsub -pe slots 16 -S /bin/bash -cwd -N "pipeline" -j y -o /home/user/log/out.log /home/user/pipeline/runthis.sh
我需要将以下 PATH 环境变量添加到 shell 中 运行:
/home/user/jre1.8.0_66/bin
(这是因为脚本依赖的 java 版本比集群上的更新版本)。
我尝试了以下方法:
qsub -pe slots 16 -S /bin/bash -cwd -N "pipeline" -j y -o /home/user/log/out.log /home/user/pipeline/runthis.sh -v PATH=/home/pa354/jre1.8.0_66/bin:$PATH -V
这没有用,我在 bash 文件中添加了 'env' 运行(检查环境变量),我需要的路径没有添加。
您需要在 qsub
命令中使用 -v
:
qsub -v JAVA_HOME ...
这会将环境变量从调用环境传递到生成的作业中。
请注意,qsub
的 -v
参数必须位于您在远程节点上 运行 的实际命令的参数之前。您似乎已经在整个命令行的末尾尝试了它,但行不通。