2017-03-27 202 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