Следующие .Rmd
могут быть достаточными?Я использую system()
в блоке R
:
---
output: html_document
params:
testparam: "this would echo something else"
---
# Header
Some text.
```{bash}
echo "this is a test"
```
Some more text.
```{r}
cat(system(paste0("echo '", params$testparam, "'"), intern = TRUE), sep = "\n")
```
Сильное вдохновение от здесь. Конечно, команда bash плохо видна, но я подозреваю, что можно обойти это.
РЕДАКТИРОВАТЬ:
С небольшим количеством обходного пути / хак, выможет отобразить код bash следующим образом:
```{r bashCode, results="asis", echo=FALSE}
bash_code <- sprintf("echo '%s'", params$testparam)
cat("<pre class='bash'><code>",
bash_code,
"
")` `` `` `{r bashOutput, echo = FALSE} cat (system (bash_code, intern = TRUE), sep =" \ n ")`` `
Таким образом, мы генерируем код bash в виде character
и cat
кода bash, заключенного в соответствующий HTML, покауказав knitr интерпретировать результат 'asis'
(чтобы результаты отображались в виде кода). Поскольку мы также подавляем сам код R (echo=FALSE
), результаты отображаются только в виде кодаДалее в следующем фрагменте мы снова подавляем печать кода, но получаем вывод системной команды, которая интерпретируется стандартным способом.
Конечно, вы можете использовать трикk из @ r2evans вместе с этим.