bash - 立即发现并非所有环境变量都已在 qsub 命令行上定义

标签 bash pbs

我正在使用 qsub 提交 pbs 作业。我的作业文件需要定义 5 个环境变量:qsub -v A=foo,B=bar,C=cat,D=dog,E=qux jobfile.sh。有时,我可能会在提交时忘记在命令行上定义其中一个变量,只是稍后才发现我的错误。

那么,在使用qsub提交时,有没有办法捕捉到没有定义所有环境变量的情况?还是我必须承认在提交包含许多必需环境变量的作业文件时必须非常小心?

谢谢,

保罗

最佳答案

您可以做的最好的事情是在 jobfile.sh 的开头添加一个运行时检查,如果没有设置任何预期的变量,它将导致它退出。

set -u
: $A $B $C $D $E
set +u

set -u 告诉 shell 在尝试扩展未设置的参数时退出。 : 命令什么都不做,但它的参数首先进行标准扩展,所以如果这五个参数中的任何一个未设置,shell 就会退出。 set +u 然后禁用对 shell 其余部分的未设置参数检查。

qsub 本身无法检查给定的作业以确定它可能需要哪些变量。

关于bash - 立即发现并非所有环境变量都已在 qsub 命令行上定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23345798/

相关文章:

parallel-processing - 如何在一个 PBS 作业提交中运行多个命令

jobs - 从 qstat 列表中删除已退出的作业

pbs - PBS_NODEFILE在pbs中是如何工作的?

sed - “sed”命令在 PBS 脚本中无法正常工作

linux - 删除存储在文件中的完整路径的路径前缀

linux - bash: export: `-Xmx512m' : 当我设置 MAVEN_OPTS 变量时不是有效标识符

bash:迭代目录内容直到条件匹配的最佳实践

c - MPI 和 C : loop through file of commands in file

linux - bash CLI 参数设置脚本变量吗?

获取上次使用参数的父级的 Bash 快捷方式