Rmarkdown 无法正确重现 bash 代码

标签 r bash knitr r-markdown grass

我正在使用 Rmarkdown 来显示一些 bash 代码:

---
title: "Untitled"
author: "JPD"
date: "20 December 2016"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r gp.setup, engine= 'bash', eval=FALSE}

##Change names to remove dots
g.rename raster=gp_ortho.1,gp_ortho_1,gp_ortho.2,gp_ortho_2,\
gp_ortho.3,gp_ortho_3

##Group bands together
i.group --verbose group=gp_combo input=gp_ortho_1@gp1,gp_ortho_2@gp1,\
gp_ortho_3@gp1
```

但是,当编入 html 时,g.rename 行大部分消失了。作为对比,下面的 i.group 命令显示正确:

knitted

执行此操作的 g.rename 代码行是什么?是 . 吗?

最佳答案

bash 将点/句点 (.) 视为执行后续操作的命令,因此它不是打印文字字符,而是查找名为 1< 的文件23

我没有将 GRASS 设置为在不启动 session 的情况下工作,但我的猜测是,如果您这样做,您的脚本会正确解释 g.rename 命令并查找您指定的光栅文件.

我假设 GRASS 没有在你的 Rmarkdown 文件中设置,所以它只是打印 g.rename... 字符,然后将 . 作为一个文件来执行所以不打印下面的内容。要使其正确打印,请在文件名中使用 . 以外的内容,设置 Rmarkdown session 以将 g.rename 理解为命令,或使用转义字符\:

```{r gp-setup, engine="bash", eval=FALSE}
# Change names to remove dots

g.rename raster=gp_ortho\.1,gp_ortho_1,gp_ortho\.2,gp_ortho_2, \
gp_ortho\.3,gp_ortho_3

## Group bands together
i.group --verbose group=gp_combo input=gp_ortho_1@gp1,gp_ortho_2@gp1, \
gp_ortho_3@gp1
```

关于Rmarkdown 无法正确重现 bash 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41251275/

相关文章:

linux - 如何在 ps -ef 命令中分隔列

css - 用于 pdf 导出的增量元素符号功能

r - R 中通配符上的聚合列

当路径包含 html/pdf 文档的 "~"但适用于 ioslides 时,R Markdown 编织失败

r - 如何将数据框拆分为多个表并将它们放入 e 列表中?

r - 是否可以使用R在数据框中交换列?

bash - 将 "forward"脚本参数传递给另一个命令的最简单方法

image - 使用 ImageMagick 将图像批量调整大小到新文件夹中

ms-word - 将空行添加到 Word 输出 RMarkdown

r - 关于 R Markdown html 输出的评论