2013-06-24 76 views
2

我正在嘗試設置新的計算羣集,並且在SGE中使用qsub命令時當前遇到錯誤。這裏有一個簡單的實驗說明了什麼問題:未找到SGE命令,未定義變量

test.sh

#!/usr/bin/zsh 

test="hello" 
echo "${test}" 

test.sh.eXX

測試=你好:命令未找到。

測試:未定義的變量。

test.sh.oXX

警告:未獲得TTY(不良的文件描述符)。

因此在這個shell中沒有作業控制。

如果我在頭節點(sh test.sh)上運行腳本,輸出是正確的。我通過輸入「qsub test.sh」將作業提交給SGE。

如果我在像HPC這樣的已建立的計算羣集上以相同的方式提交完全相同的腳本作業,它可以按預期完美工作。什麼設置可能導致這個問題?

感謝您對此事的任何幫助。

回答

4

很可能您的羣集上的隊列被設置爲posix_compliant模式,其默認shell爲/ bin/csh。 posix_compliant設置意味着你的#!行被忽略。您可以將隊列更改爲unix_behavior或使用qsub的-S選項指定所需的shell。

#$ -S /bin/sh 
+0

啊,是的,我看了手冊頁,並嘗試這工作。感謝您解釋爲什麼! – sidmontu