这样的东西,但它不起作用:
```{r examples, engine="bash"}
export EXAMPLES="example/path"
```
```{r example1, engine="bash"}
echo $EXAMPLES
```
然而,这是有效的:
```{r examples2, engine="bash"}
export EXAMPLES="example/path"
echo $EXAMPLES
```
答案 0 :(得分:4)
这是一个很好的问题!这也是我真正想要完成但不知道该怎么做的事情(如果有人能帮助我,我感激不尽)。它不仅适用于bash
,也适用于knitr
中所有其他引擎,例如python
,ruby
等。它当前不起作用的原因是knitr
只是通过system('engine -arg code')
运行代码,即对于每个代码块,打开一个新的引擎会话,因此所有块基本上都在不同的进程中执行。
理想情况下,我想要一个能够打开会话并继续收听新代码的引擎,但我不确定这是否可行。 AFAIK,共享变量的唯一方法是将它们写入文件,这显然很尴尬。