1

我正在尝试从 R 内部运行一个 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

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

4

1 回答 1

2

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

paste(myPATH, 'run.sh')

会给:

~/Documents/Rcode/GFR_test/ run.sh

为了抑制额外的空间,你要么必须添加sep=""到你的paste(),或者更好的是,使用paste0 它有一个默认的空分隔符(并且更快一点):

paste0(myPATH, 'run.sh')
于 2013-10-04T14:54:08.023 回答