2013-05-17 71 views
0

我有一個腳本,確定模塊負載狀態。確定模塊負載狀態

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

回答

0

的問題是,在腳本的第一行,用-fe調用csh。根據該男子頁,csh-e選項「會導致腳本退出如果任何調用的命令意外終止或產生非零退出狀態。」因此,只要腳本發生錯誤,腳本就會終止而不通過腳本中的其餘代碼。

因此,請嘗試將#!/bin/csh -fe更改爲#!/bin/csh -f

0

沒有記錄,module適當地設置退出狀態。如果沒有,您仍然可以檢查其輸出,如

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