将参数从调用bash脚本传递给Rscript

时间:2013-07-13 19:32:57

标签: r bash ubuntu

我有一个bash脚本执行某些操作然后调用Rscript。这里有一个简单的例子来说明:

test.sh:

Rscript test.r

test.r:

args <- commandArgs()
print(args)

如何在R打印hello中使用./test.sh hello命令行结果?

3 个答案:

答案 0 :(得分:4)

你可以让bash将所有参数传递给R脚本,使用类似的东西来表示bash脚本:

#!/bin/bash

Rscript /path/to/R/script --args "$*"

exit 0

然后,您可以选择需要在R中删除多少来自$ *的参数。

答案 1 :(得分:2)

我注意到处理这个问题的方法是:

<强> test.sh:

Rscript test.r $1

<强> test.r:

args <- commandArgs(TRUE)
print(args)

$1表示传递给bash脚本的第一个参数。

当调用commandArgs()而不是commandArgs(TRUE)时,它不会从bash传递,而是会打印内部调用的其他参数。

答案 2 :(得分:0)

关于asb的回答:

在bash脚本行中使用“--args”不起作用,“ - args”被视​​为我要传递到R脚本的真实参数的字面值。把它拿出来工作,即“Rscript /path/to/my/rfile.R arg1 arg2”

bash版本:GNU bash,版本3.2.25(1)-release(x86_64-redhat-linux-gnu) Rscript版本:R脚本前端版本3.0.1(2013-05-16)