【发布时间】:2018-03-04 02:35:31
【问题描述】:
我想在 RStudio .rmd 文件中执行 bash 语句,如下所示。
```{bash}
ls
```
起初,RStudio 只会在代码块旁边显示红色按钮。我发现 bash 的 OpenSSH 版本正在打开一个 shell 窗口,所以通过调整 windows 系统路径,我得到了 ...\Git\bin\bash.exe 版本来执行。
然后我得到以下红色错误:
bash: C:\Users\{me}\AppData\Local\Temp\RtmpmEF1jM\chunk-code3cb46c6027b3.: No such file or directory
在 Rmarkdown 页面上似乎可执行的仅有的四个引擎(sh、bash、perl 和 python)中的每一个都会发生这种情况(在块的右侧显示一个小绿色三角形)。这比 this page 上描述的 Python、SQL、Bash、Rcpp、Stan、JavaScript 和 CSS 的语言示例要少,并且比 knitr::knit_engines 对象中包含的 38 个要少得多。
搜索 StackOverflow,我遇到了 this short example,它展示了如何编写自己的语言引擎。所以我修改它来访问Git-Bash shell,注册函数如下:
eng_gitbash <- function( options ) { ... }
knitr::knit_engines$set( gitbash = eng_gitbash )
但是当我执行块 {r, engine='gitbash'} 时,我得到了这个错误。
'"C:\Users\{me}\AppData\Local\Temp\RtmpmEF1jM\chunk-code3cb476f93db0."' is not recognized as an internal or external command, operable program or batch file.
虽然我已经阅读了很多 Yihui Xie 的优秀文档,但我似乎无法找到如何测试我编写的 eng_gitbash 函数。如果有人能告诉我“options$engine 可以如何在命令行中直接使用来执行代码”,我也许可以让我自己的版本正常工作。
同样作为一个一般性问题,有人可以指出我对语言引擎的环境要求的描述 1) 可被 RStudio 识别为可执行文件和 2) 使用 Windows 临时文件正确执行。
谢谢,苏
【问题讨论】:
标签: r windows bash rstudio knitr