To jest świetne pytanie! Jest to również coś, co naprawdę chcę osiągnąć, ale nie wiem jak to zrobić (doceniam, jeśli ktoś może mi pomóc). Jest to przydatne nie tylko dla bash
, ale także dla wszystkich innych silników w knitr
, takich jak python
, ruby
i tak dalej. Powodem, dla którego nie działa w tej chwili, jest knitr
po prostu uruchamia kod przez system('engine -arg code')
, tj. Dla każdego fragmentu kodu, otwierana jest nowa sesja silnika, więc wszystkie porcje są zasadniczo wykonywane w różnych procesach.
Idealnie chcę silnika, który otwiera sesję i nadal słucha nowego kodu, ale nie jestem pewien, czy jest to w ogóle możliwe. AFAIK, jedynym sposobem na udostępnianie zmiennych jest zapisywanie ich w plikach, co jest oczywiście niezręczne.
Chcesz złożyć raport o błędzie: https://github.com/yihui/knitr/issues – Dason
Po prostu FYI, jest to możliwe z pakietem runr teraz: https://github.com/yihui/runr but Nadal muszę ją wypolerować, zanim zintegrujemy ją w knitr (przykład http://rpubs.com/yihui/bash-knitr) –