Этот вопрос был мотивирован Rmarkdown, не выводя результаты системной команды в html файл. По какой-то причине вывод system() в R (или system2()) не может быть зафиксирован с помощью sink() или capture.output(), поэтому в настоящее время нет возможности для knitr записывать вывод. Например, в консоли R:
> system('ls')
DESCRIPTION
NAMESPACE
R
README.md
inst
man
но в документе knitr вы не увидите результат, потому что capture.output(system('ls')) - character(0), то есть вывод не может быть захвачен. Конечно, я могу сделать cat(system('ls', intern = TRUE), sep = '\n'), как я упомянул в ответе на этот вопрос, но это неловко. Интересно, является ли это способом захвата вывода system() без использования intern = TRUE и cat().
Обновить: см. https://github.com/yihui/knitr/issues/1203 для взлома, который я предоставил для решения проблемы.