Есть ли способ узнать, выполняется ли сценарий R напрямую или внутри другого сценария?

Я использую R studio.

Есть ли способ узнать, запущен ли скрипт R напрямую (исходной командой в консоли) или внутри другого скрипта. т.е. получен другой сценарий, и он вызывает первый сценарий.

В некоторых случаях это может быть полезно для запроса некоторых значений.

Что я сейчас делаю, так это устанавливаю переменную в значение true или false, и внутри скрипта я проверяю эту переменную. Это работает, но автоматический способ лучше.

Спасибо за ваше время.

РЕДАКТИРОВАТЬ: Дополнительная информация

Допустим, у меня есть независимый скрипт, который нормально работает как есть, но этот скрипт является частью процесса, запускаемого после завершения другого скрипта. Если мне нужно запустить оба, я могу запустить первый, затем второй; но также у меня есть шанс просто запустить второй.

Я спрашиваю, есть ли способ (во втором скрипте) проверить, был ли этот второй вызван из первого или нет.

Взгляните на его простые примеры (навеянные ответом Грега Сноу). Сначала файл, который я вызываю в Rstudio

# scripta.R
writeLines("script A")
if (interactive()) writeLines("interactive: true") else writeLines("interactive false")
source("scriptb.r")
writelines("after B")

Затем исходный файл

# scriptb.R
writeLines("script B")
if (interactive()) writeLines("interactive: true") else writeLines("interactive false")
writeLines("end B")

Результат в Rstudio

script A
interactive: true
script B
interactive: true
end B
after B

Мне нравится иметь что-то вроде

script A
interactive: true
script B
interactive: false
end B
after B

Надеюсь, теперь это более понятно.

Спасибо

8
задан Benjamin Christoffersen 12 January 2019 в 11:38
поделиться