Это происходит в обоих направлениях - что мы сейчас читаем ~/.Rprofile
в значительной степени из-за пользователей, которые хотели этой функции, в отличие от вас не , желающих этого: )
Но есть (простое и легкое) исправление: используйте interactive()
. Свидетель:
edd@rob:~$ r -e 'print(interactive())'
[1] FALSE
edd@rob:~$ r -i -e 'print(interactive())'
Please do not apply R like a magic answers box, because you can mislead
others and cause harm.
-- Jeff Newmiller (about how much statistical knowledge is needed
for using R)
R-help (May 2016)
[1] TRUE
edd@rob:~$
Так что здесь произошло? Сначала , мы тестировали interactive()
. Он вернулся FALSE
. Это по умолчанию. Ничего не произошло.
Второй , я добавил переключатель -i
в для интерактивного режима . На нем напечатано TRUE
, но больше. Почему?
Ну, мой ~/.Rprofile
по сути выглядит так
## header with a few constant settings, mostly to options()
## TZ setting and related
local({ # start of large block, see Rprofile.site
if (interactive()) {
if (requireNamespace("fortunes", quietly=TRUE)) {
print(fortunes::fortune())
#more stuff
}
})
, и он управляет моими интерактивными R-сессиями на консоли, в Emacs / ESS, в RStudio и моими интерактивные r
звонки, скажем, с crontab
.
Короче говоря: да, он всегда читается. Но да, вы также можете пропустить части, которые вы не хотите выполнять.