Экспортированные значения в bash доступны только в одном сеансе. По этой причине R сможет увидеть это значение, только если оно было запущено в том же сеансе. Если это так, то ваш вопрос уже содержит ответ, как он должен работать. Доказано, что это работает, см. этот похожий вопрос .
Однако, если процесс R или его дочерние процессы запускаются в его собственной оболочке, чем переменная сеанса, такая как MY_OTHER_PARAM
вероятно, будет неизвестен этому процессу R. Вероятно, это связано с тем, как rmarkdown / knitr обрабатывает внешние команды. Вы можете увидеть эту проблему с помощью следующего фрагмента: второй сеанс bash также не знает экспортированную переменную. Другие также сообщили об этой проблеме.
```{bash}
export MY_OTHER_PARAM="param value"
echo $MY_OTHER_PARAM
```
```{bash}
echo $MY_OTHER_PARAM
```
Итак, самое простое решение - сохранить информацию в указанном файле c и прочитать ее в последующих сеансах:
```{bash}
echo 'export MY_OTHER_PARAM="param value"' > .rvars
source .rvars
echo $MY_OTHER_PARAM
```
```{bash}
source .rvars
echo $MY_OTHER_PARAM
```
Если мы уже используем файлы, я бы пропустил среду в качестве пути возврата.
```{bash}
echo 'param value' > .myparam
cat .myparam
```
```{bash}
echo $(cat .myparam)
```
```{r}
string <- paste(readLines(".myparam"), collapse=" ")
print(string)
```