system2
位于 base
包(package)。 说明
system2
调用command
指定的操作系统命令。
用法
system2(command, args = character(),
stdout = "", stderr = "", stdin = "", input = NULL,
env = character(), wait = TRUE,
minimized = FALSE, invisible = TRUE, timeout = 0,
receive.console.signals = wait)
参数
command |
要调用的系统命令,作为字符串。 |
args |
|
stdout , stderr |
其中输出到‘标准输出' 或者 '标准错误’应该被发送。可能的值为 |
stdin |
输入应该被转移吗? |
input |
如果提供了字符向量,则每行将一个字符串复制到临时文件,并且 |
env |
用于设置环境变量的 name=value 字符串的字符向量。 |
wait |
一个逻辑的(不是 |
timeout |
超时(以秒为单位),如果为 0,则忽略。这是在单独进程中运行 |
receive.console.signals |
一个逻辑的(不是 |
minimized , invisible |
在 Windows 上接受但在此平台上忽略的参数,并带有警告。 |
细节
与 system
不同,command
始终由 shQuote
引用,因此它必须是不带参数的单个命令。
有关如何找到command
的详细信息,请参阅system
。
在 Windows 上,env
仅支持 R
和 make
等在命令行上接受环境变量的命令。
某些 Unix 命令(例如 ls
的某些实现)如果认为输出是通过管道传输或重定向的,则会更改其输出:stdout = TRUE
使用管道,而 stdout =
"some_file_name"
使用重定向。
由于其实现方式,在类 Unix 上 stderr =
TRUE
意味着 stdout = TRUE
:如果这不是指定的内容,则会发出警告。
当timeout
不为零时,命令将在给定秒数后终止。终止适用于典型命令,但不能保证:可以编写一个在超时后继续运行的程序。超时只能使用 wait = TRUE
设置。
超时不能与交互式命令一起使用:该命令使用从 /dev/null
重定向的标准输入运行,并且不得修改终端设置。只要 tty tostop
选项被禁用(通常默认情况下),执行的命令可能会写入标准输出和标准错误。
receive.console.signals = TRUE
在运行异步进程(使用 wait = FALSE
)来实现同步操作时很有用。在所有其他情况下,建议使用默认值。
值
如果stdout = TRUE
或者stderr = TRUE
,给出命令输出的字符向量,每个字符串一行。 (超过 8095 字节的输出行将被分割。)如果该命令无法运行,R产生错误。如果command
运行但给出非零退出状态,这将在属性中报告并带有警告"status"
结果的:一个属性"errmsg"
也可能可用。
在其他情况下,返回值是错误代码(0
为成功),鉴于base invisible属性(因此需要显式打印)。如果该命令因任何原因无法运行,则该值为127
并发出警告(从R3.5.0)。否则如果wait = TRUE
该值是命令返回的退出状态,如果wait = FALSE
这是0
(常规成功值)。
如果命令超时,则会发出警告,退出状态为 124
。
注意
system2
是比 system
更便携、更灵活的接口。它允许重定向输出,而无需在 Windows 上调用 shell,这是一种为 command
的执行设置环境变量的可移植方法,以及对 stdout
和 stderr
的重定向进行更精细的控制。相反,system
(以及 Windows 上的shell
)允许调用任意命令行。
如果stdout
和stderr
都是TRUE
或同一个文件,则不能保证这两个流将按顺序交错。这取决于命令和操作系统使用的缓冲。
也可以看看
system
。
相关用法
- R system.file 查找 R 系统文件的名称
- R system.time 使用的 CPU 时间
- R system 调用系统命令
- R sys.parent 访问函数调用堆栈的函数
- R sys.source 解析和评估文件中的表达式
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R search 给出 R 对象的搜索路径
- R solve 求解方程组
- R scan 读取数据值
- R sprintf 使用 C 风格字符串格式化命令
- R stop 停止函数执行
- R sign 标志函数
- R svd 矩阵的奇异值分解
- R strtoi 将字符串转换为整数
- R source 从文件、连接或表达式中读取 R 代码
- R sQuote 引用文字
- R switch 选择替代方案列表之一
- R substitute 替换和引用表达式
- R strrep 重复字符向量的元素
- R split 分组并重新集合
- R slice.index 数组中的切片索引
- R sort 对向量进行排序或排序
- R standardGeneric 形式化方法系统 – 调度 S4 方法
- R sequence 创建序列向量
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Invoke a System Command。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。