При запуске R в «пакетном режиме» для флага interactive
устанавливается значение false, что предотвращает любые запросы пользователя, которые могли бы прервать процесс в контексте встроенной/пакетной настройки. Видеть:
R -e 'interactive()'
Некоторые сохраняются при использовании Rscript
. Флаг также можно установить вручную с помощью пакета interactivity. Для проверки мы можем попробовать:
R -e 'install.packages("anything")
Предполагая, что зеркало CRAN еще не установлено, install.packages
не будет отображать какое-либо интерактивное средство выбора зеркал, а вместо этого выдаст ошибку и завершит работу.
Однако я заметил, что команда help
или ?
все равно будет работать. Например, приведенная ниже команда покажет браузер справки, и она не продолжится, пока я не нажму q.
R -e 'help(lm); 1+2'
Однако при отправке вывода в файл интерактивная подсказка не отображается, а просто выводится полный справочный документ:
R -e 'help(lm); 1+2' > output.txt
Теперь я немного запутался в том, что на самом деле происходит при использовании help
. Почему вы получаете интерактивный браузер справки, даже если R работает в пакетном режиме? Это особенность R
или интерфейса Debian/Ubuntu? Существует ли риск того, что R
перестанет отвечать на запросы, когда функция help
вызывается внутри, т. е. Rserve, RInside, JRI и т. д., из-за того, что R ожидает использования ввода?