系统内部的qsub功能

时间:2016-01-26 20:54:11

标签: r qsub

我想通过R system2()运行qsub作业。 .sh脚本本身需要一些参数,我不知道如何传递它们。 我做了以下但似乎没有任何事情发生 - 作业被提交给qsub,但它消失了,我没有得到脚本输出的结果。

arg1,arg2,arg3是script.sh

所需的命令行参数
arg1<-"first"
arg2<-"second"
arg3<-"third"

system2("qsub", stdout="log.out", stderr="log.err", 
         args="-cwd -v arg1,arg2,arg3 -o out.txt -e err.txt script.sh")

我猜变量arg1,arg2和arg3在此字符串中不可见。我怎样才能以不同的方式传递它们?

1 个答案:

答案 0 :(得分:0)

args的{​​{1}}参数应该是单独参数的字符向量,而不是由空格分隔的单个字符串。因此,它应该看起来像:

system2

当它被赋予一个字符串时,它将转义空格,这意味着qsub(或任何命令)不会知道它们是单独的参数。

或者,如果您希望将参数写为单个空格分隔的字符串,则可以使用system2("qsub", stdout="log.out", stderr="log.err", args=c("-cwd", "-v", "arg1,arg2,arg3", "-o", "out.txt", "-e", "err.txt", "script.sh")) 将其拆分:

strsplit