我想通过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在此字符串中不可见。我怎样才能以不同的方式传递它们?
答案 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