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
```
Другие вопросы по тегам