【发布时间】:2015-05-20 17:47:18
【问题描述】:
我试图(最终)通过调用 shell() 函数通过 R 执行一个 ruby 脚本。不过,作为第一步,我只是想验证我是否可以通过这个函数调用 ruby 编译器,但我得到了一个错误。这是我的代码:
dir <- shell("ruby -v", intern=TRUE)
这会引发警告:警告消息:正在运行的命令
'C:\WINDOWS\system32\cmd.exe /c ruby -v' had status 1
“dir”变量为空。我已验证命令“ruby -v”在命令提示符下运行时有效,并且 Ruby 包含在我的系统路径变量中。
【问题讨论】:
-
我知道你说 Ruby 在你的系统路径变量中,但你能用
Sys.getenv("PATH")验证你在 R 中的PATH环境变量中看到 ruby 吗? -
你用的是什么外壳?如果在 shell 命令中指定 shell 会发生什么。尝试设置 intern=FALSE, wait=TRUE 看看控制台的输出是什么
-
@cdeterman 谢谢,这就是问题所在。我什至不知道 R 有一个内部路径环境变量。我通过 Sys.setenv() 函数添加了 Ruby /bin 目录,现在我从 shell() 命令获得了 Ruby 版本的正确输出。谢谢!!
-
@NathanCalverley,我将在下面添加答案,以便我们结束这个问题。