我使用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代码行是什么?是.
吗?
答案 0 :(得分:3)
bash
将点/句点(.
)视为执行后续操作的命令,因此不是打印文字字符,而是查找名为1
,2
的文件,和3
。
我没有GRASS设置工作而没有启动会话,但我的猜测是,如果你这样做,你的脚本正确解释g.rename
命令并查找你指定的光栅文件。
我假设您的Rmarkdown文件中没有设置GRASS,因此它只是打印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
```