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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。