2

我正在尝试设置一个新的计算集群,目前在 SGE 中使用 qsub 命令时遇到错误。这是一个显示问题的简单实验:

测试.sh

#!/usr/bin/zsh

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

测试.sh.eXX

测试=你好:找不到命令。

测试:未定义的变量。

测试.sh.oXX

警告:无法访问 tty(错误的文件描述符)。

因此在这个 shell 中没有作业控制。

如果我在头节点 (sh test.sh) 上运行脚本,则输出是正确的。我通过键入“qsub test.sh”将作业提交给 SGE。

如果我在已建立的计算集群(如 HPC)上以相同的方式提交完全相同的脚本作业,它会按预期完美运行。什么设置可能导致此问题?

感谢您对此事的任何帮助。

4

1 回答 1

4

集群上的队列很可能设置为 posix_compliant 模式,默认 shell 为 /bin/csh。posix_compliant 设置意味着你的 #! 行被忽略。您可以将队列更改为 unix_behavior 或使用 qsub 的 -S 选项指定所需的 shell。

#$ -S /bin/sh
于 2013-10-16T20:35:53.827 回答