在一个Shell脚本中,如何结合使用`Rscript`和Unix命令?

5

我目前正在尝试将一个R文件作为Rscript文件运行。我在script.sh文件中有以下代码:

#!/bin/bash
cd documents
module load r

#!/usr/bin/env Rscript
mem2 <- 4+5
packageVersion("data.table")
save.image("OUT.RData")

然而,似乎在使用 qsub script.sh 运行后,出现了错误,指出有几个命令无法识别。我做错了吗?谢谢!

1
这都在同一个文件里吗? - Matthew Lundberg
1个回答

9

我认为您正在寻找shell中的“Here文档”。这允许将文本传递给另一个解释器。例如:

#!/bin/bash
cd documents
module load r

/usr/bin/env Rscript -<<EOF
mem2 <- 4+5
packageVersion("data.table")
save.image("OUT.RData")
EOF

这里调用 Rscript (从 /usr/bin/env)并且将所有接下来的行通过标准输入传递,直到遇到标记(这里是 EOF)为止。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接