确定模块加载状态

时间:2013-05-17 04:50:02

标签: linux csh

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

在下面的代码第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

2 个答案:

答案 0 :(得分:1)

没有记录module正确设置退出状态。如果它没有,你仍然可以检查它的输出,如

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

答案 1 :(得分:0)

问题在于,在脚本的第一行中,使用csh调用-fe。根据手册页,如果任何被调用的命令异常终止或产生非零退出状态,-e的{​​{1}}选项会导致脚本退出。“因此,只要脚本出现错误,它就会终止,而不会通过脚本中的其余代码。

因此,请尝试将csh更改为#!/bin/csh -fe