2013-06-24 4 views
2

Я пытаюсь установить новый вычислительный кластер и в настоящее время испытывать ошибки при использовании команды qsub в SGE. Вот простой эксперимент, который показывает проблему:Команда SGE не найдена, неопределенная переменная

test.sh

#!/usr/bin/zsh 

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

test.sh.eXX

тест = привет: Команда не найдена.

test: Неопределенная переменная.

test.sh.oXX

Внимание: нет доступа к TTY (Bad дескриптор файла).

Таким образом, нет контроля над работой в этой оболочке.

Если я запустил скрипт на головном узле (sh test.sh), выход будет правильным. Я отправляю задание в SGE, набрав «qsub test.sh».

Если я отправляю то же самое задание сценария таким же образом в установленном вычислительном кластере, как HPC, он работает отлично, как ожидалось. Какая настройка может вызвать эту проблему?

Спасибо за любую помощь по этому вопросу.

ответ

4

Скорее всего, очереди на вашем кластере настроены на режим posix_compliant со стандартной оболочкой/bin/csh. Параметр posix_compliant означает ваш #! строка игнорируется. Вы можете либо изменить очереди на unix_behavior, либо указать требуемую оболочку с использованием опции -S qsub.

#$ -S /bin/sh 
+0

Ах да, я прочитал страницу руководства и попытался это сработать. Спасибо за объяснение, почему! – sidmontu