【问题标题】:Is there an easy way to run bash scripts on R Markdown, using Windows 10?有没有一种简单的方法可以使用 Windows 10 在 R Markdown 上运行 bash 脚本?
【发布时间】:2018-05-01 13:49:07
【问题描述】:

过去几个月我一直在学习 R Markdown。让 Anaconda Python 在 R Markdown 脚本中运行相当容易,但我还没有找到在同一个文档中运行大量 bash 代码的方法。

使用

```{bash}
echo hello world
```

我收到错误消息

/bin/bash: C:\Users\MyName\AppData\Local\Temp\Rtmp0MpNfS\chunk-code-4cbc213a3545.txt: 没有这样的文件或目录

你们中的任何人都知道这个问题的根源是什么吗?

【问题讨论】:

  • 好问题。不幸的是,我认为 knitr 还不知道 WSL。
  • 实际上,看起来 knitr 确实 设法运行 bash。真正的问题是它试图处理的文件在 Windows 文件系统中,这与 bash 文件系统不同。
  • 哦,好吧。你知道我如何让它表现得好像它在 bash 文件系统中一样吗?例如,这是 WSL Ubuntu 设法做到的。
  • 我确实安装了 WSL,它对我有用。在 Windows 中启动 R(不是在 WSL 中)并输入 Sys.which("bash") 确实在我的系统上找到 bash 然后输入:library(rmarkdown); render("testbash.Rmd") 其中 testbash.Rmd 位于我启动 R 的当前目录中,并包含如图所示的 3 行问题对我有用,可以生成带有 hello world 的 testbash.html 文件。
  • 完成。欢迎大家评论:github.com/rstudio/rstudio/issues/2724

标签: r rstudio r-markdown knitr windows-subsystem-for-linux


【解决方案1】:

我知道可能为时已晚,但我遇到了同样的问题,我找到了解决方案。

首先,在 Windows 8.1 中,或者如果您没有适用于 Linux 的 Windows 子系统 (WSL),您可以安装 Cygwinhttps://cygwin.com/ > 安装 Cygwin

其次,将 Cygwin 添加到 PATH 中。通常 Cygwin 安装在 C:\cygwin64 中,在这种情况下,包含的路径将是 C:\cygwin64\bin

第三,在R中使用base::Sys.which("bash")检查一切是否正确

  • 如果一切正确,它会显示类似"C:\\cygwin64\\bin\\bash.exe"

第四,您可以在 Rmarkdown 文档中运行,您指出要仔细检查的块:

```{bash}
echo hello world
```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 2011-09-18
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多