我正在尝试从内部运行一个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
许可问题很奇怪,因为我知道我做对了。你能帮忙吗?感谢
答案 0 :(得分:2)
使用paste
时,默认分隔符为空格。所以:
paste(myPATH, 'run.sh')
会给:
~/Documents/Rcode/GFR_test/ run.sh
要取消额外空间,您必须向sep=""
添加paste()
,或者更好地使用具有默认空分隔符的paste0
(并且速度更快) :
paste0(myPATH, 'run.sh')