Rmarkdown не воспроизводит код bash должным образом
Я использую 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, которая делает это? Это .
?
1 ответ
bash
лечит точки / периоды (.
) в качестве команды для выполнения следующих действий, поэтому вместо вывода буквенных символов он ищет файлы, называемые 1
, 2
, а также 3
,
У меня нет 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
```