2017-03-27 136 views
0

我正在运行接受5个命令行参数的脚本“example.sh”。Qsub导致脚本无法正常工作:“未找到命令”

这工作得很好:

./example.sh arg1 arg2 arg3 arg4 arg5 

,它返回一个文件result1.txt现在

当我尝试运行它在SGE集群(带或不带 “./”):

qsub ./example.sh arg1 arg2 arg3 arg4 arg5 

这不会导致任何输出。

在example.sh.eXXXXXXX文件,我得到:

arg1=1: Command not found. 
arg2=2: Command not found. 
... 
and so on. 

我不知道为什么它不与qsub命令工作。我还在我的脚本顶部插入了一个

#!/usr/bin/env bash 

。我一直在调整一些东西,试图在stackoverflow和web上找到不同的东西,但到目前为止还没有成功(我试过了-S和-F标志)。任何建议表示赞赏指向我在正确的方向。

+0

我搜索了一下,想到两件事:1.你确定太阳网格提供了一个“bash”吗? (我看到很多'csh'示例,'csh'的语法与'bash'的语法有些不同。)2.我找不到任何带有额外命令行参数的示例,这些示例让我很疑惑。 man输入'qsub [options] [command | - [command_args]]'看起来是否不支持。解决方案很简单:将脚本调用_with_参数包含到新脚本中。 (我在这里所建议的,我在过去的半小时里学到的,如果你得到了一个认真的答案,我会抹掉这个评论。) – Scheff

回答

0

qsub不会接受你的shell脚本的论点这样,但任何一项都将工作:

1)把./example.sh arg1 arg2 arg3 arg4 arg5到另一个脚本,例如command.sh,然后运行qsub command.sh

2)将全部命令管理为qsub作为标准输入,例如:echo ./example.sh arg1 arg2 arg3 arg4 arg5 | qsub