我正在尝试设置新的计算群集,并且当前在SGE中使用qsub命令时遇到错误。这是一个简单的实验,显示了问题:
test.sh
#!/usr/bin/zsh
test="hello"
echo "${test}"
test.sh.eXX
test = hello:找不到命令。
测试:未定义的变量。
test.sh.oXX
警告:无权访问tty(错误的文件描述符)。
因此在这个shell中没有作业控制。
如果我在头节点上运行脚本(sh test.sh),则输出正确。我通过输入“qsub test.sh”将作业提交给SGE。
如果我在已建立的计算群集(如HPC)上以相同的方式提交完全相同的脚本作业,则可以按预期完美地运行。什么设置可能导致此问题?
感谢您对此事的任何帮助。
答案 0 :(得分:4)
群集上的队列很可能设置为posix_compliant模式,默认shell为/ bin / csh。 posix_compliant设置意味着你的#!线被忽略。您可以将队列更改为unix_behavior,也可以使用qsub的-S选项指定所需的shell。
#$ -S /bin/sh