В ответ на предыдущий вопрос Альтернативы system() в R для вызова sed, rsync, ssh и т.д.: Существуют ли функции, должен ли я написать свою собственную, или я упускаю суть?, хэдли ответ указал, что столкнувшись с подобной проблемой, он использовал такую функцию, как:
bash <- function() system("bash")
Я нашел оригинал в его пакете devtools; реализовано в devtools/R/bash.R:
#' Open bash shell in package directory.
#'
#' @param pkg package description, can be path or package name. See
#' \code{\link{as.package}} for more information
#' @export
bash <- function(pkg = NULL) {
pkg <- as.package(pkg)
in_dir(pkg$path, system("bash"))
}
Я не понимаю смысла этого. Когда я выпускаю
bash <- function() system("bash")
Он отправляет меня в оболочку bash, после чего exit
возвращает меня в сеанс R, но функции bash
нет. Кажется, я могу получить тот же эффект, выполнив любую из следующих пар команд (первая команда в R, вторая в bash)
system('bash')
exit
or
q('yes')
R
вычеркнутая часть была вызвана ошибкой копирования/вставки с моей стороны
Я также не могу найти дальнейшего использования функции bash
в пакете devtools.
Может кто-нибудь помочь мне понять, как можно использовать функцию bash
; можно ли его использовать в других контекстах (например, в сценариях или функциях), кроме интерактивного режима R?