2

我正在使用 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 命令显示正确:

针织的

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

4

1 回答 1

3

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

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

我假设 GRASS 未在您的 Rmarkdown 文件中设置,因此它只是打印g.rename...字符然后将其.视为要执行的文件,因此不打印以下内容。要使其正确打印,请使用.文件名以外的其他内容,设置 Rmarkdown 会话以将其理解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
```
于 2016-12-20T23:26:33.273 回答