我正在使用 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 代码行是什么?是 .
吗?
最佳答案
bash
将点/句点 (.
) 视为执行后续操作的命令,因此它不是打印文字字符,而是查找名为 1< 的文件
、2
和 3
。
我没有将 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/