判断模块加载状态

问题描述 投票:0回答:2

我有一个脚本可以确定模块加载状态。

在下面的代码第 4 行中,它给我错误,它无法加载特定版本,而不是在我检查状态后。理想情况下我应该得到 1 作为状态但它仍然是零。

然后我也使用命令行进行检查。喜欢

module load her/2012;echo $status

我不明白为什么我会收到状态代码 0。更具体地说,我如何确定模块加载命令的状态

  1         #!/bin/csh -fe
  2         source /global/etc/csh.cshrc
  3         module unload hercules
  4         module load hercules/2012
  5         if ( $status != 0) then
  6          echo "Error: abhishek Unable to execute  module load hercules/2012"
  7          exit
  8         endif
linux csh environment-modules
2个回答
1
投票

没有记录

module
适当设置退出状态。如果没有,您仍然可以检查其输出,例如

module load hercules/2012 |& if ({ grep error }) then
    echo "Error: abhishek Unable to execute  module load hercules/2012"
    exit
endif

0
投票

问题在于,在脚本的第一行中,

csh
是用
-fe
调用的。根据手册页,
-e
csh
选项“如果任何调用的命令异常终止或产生非零退出状态,则会导致脚本退出”。因此,一旦脚本出现错误,它就会终止,而不执行脚本中的其余代码。

因此,请尝试将

#!/bin/csh -fe
更改为
#!/bin/csh -f

© www.soinside.com 2019 - 2024. All rights reserved.