我尝试使用R的system()
函数从R脚本调用shell脚本。
我正在执行以下操作:
在我的R脚本中,我调用system()
函数:system(exe, intern = TRUE,wait = TRUE)
,exe包含shell脚本调用脚本所需的参数,以从R脚本目录到shell脚本目录的文件路径开头。
这将返回sh: 1: 'file-path-to-shell-script': not found
当我复制粘贴exe中包含的内容,并直接在命令行中运行它时,从R脚本的文件位置开始,它工作得很完美。
有人能帮我吗?
1条答案
按热度按时间thtygnil1#
我假设您使用的是shell脚本的 * 相对 * 路径。在脚本中执行
getwd()
以确保您的工作目录与脚本所在的目录相对应。如果您的当前工作目录与脚本的位置不对应,您有几个选择:1.使用
setwd()
将工作目录设置为正确的位置,以便shell脚本的相对路径正确。1.使用
getwd()
提供的信息来更正相对路径1.使用shell脚本的绝对路径作为
system()
的参数示例:
/home/bis/scripts
中,getwd()
返回/home/bis/R/workspace
。/home/bis
中system('../scripts/my-script.sh')
,则会失败。system('../../scripts/my-script.sh')
,则会成功。希望这对你有帮助!