在R:在system()问题中的路径中运行bash文件

时间:2013-10-04 14:39:51

标签: r bash permissions permission-denied

我正在尝试从内部运行一个bash文件。所以我有以下工作正常:

setwd(path.expand("~/Documents/Rcode/"))

system("ls -F")
system('~/Documents/Rcode/GFR_test/run.sh')

因为我提供了run.sh文件的完整路径,所以这非常正常。但是,在使用长代码和许多bash文件运行时,这会变得乏味。所以我需要为每个sh文件创建一个变量:

myPATH <- "~/Documents/Rcode/GFR_test/"

然后调用run.sh

 system(paste(myPATH, 'run.sh'))

不幸的是,这不起作用,因为我收到错误:

 sh: 1: ~/Documents/Rcode/GFR_test/ : Permission denied

许可问题很奇怪,因为我知道我做对了。你能帮忙吗?感谢

1 个答案:

答案 0 :(得分:2)

使用paste时,默认分隔符为空格。所以:

paste(myPATH, 'run.sh')

会给:

~/Documents/Rcode/GFR_test/ run.sh

要取消额外空间,您必须向sep=""添加paste(),或者更好地使用具有默认空分隔符的paste0(并且速度更快) :

paste0(myPATH, 'run.sh')