针对前面的问题,R 中调用 sed、rsync、ssh 等的 system() 的替代方法:函数是否存在,我应该自己编写,还是我错过了重点?,哈德利的 回答表明,当遇到类似的问题时,他使用了如下函数:
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 shell,然后exit
将我返回到 R 会话,但没有任何bash
功能。似乎我可以通过发出以下任一命令对来获得相同的效果(R 中的第一个命令,bash 中的第二个)
system('bash')
exit
或者
q('yes')
R
被击中的部分是由于我的复制/粘贴错误
我也无法bash
在 devtools 包中找到该功能的任何进一步用途
有人可以帮我了解如何bash
使用该功能吗?它可以在交互式 R 模式以外的上下文中使用(例如在脚本或函数中)吗?