在R中,調用系統命令有3種主要機制:system
,system2
和shell
(它似乎與system
共享一個聯機幫助頁)。沒有一個提供了非常可靠的跨平臺方式來運行系統命令,而不會發生shell阻塞 - 如果shell進行干預,我們需要擔心shell注入攻擊,確保引用是正確的,等等。系統調用時無需調用R中的shell
某些語言提供對C級execvp
函數(例如Perl的system PROGRAM LIST
機制)的直接訪問,當我想確保數組中的字符串恰好是子進程將在其參數中看到的字符串時,這非常有用,而不是四處尋找嵌入的空白,引號等適當的引用例程,並擔心他們將在不同的平臺和不同版本的shell上執行什麼操作。
在R中是否有類似的無殼系統調用機制,可能在某個CRAN包中?和/或是否有任何建立這樣的機制的胃口,如果沒有一個呢?
非常有趣的問題,我想知道答案。然而,就目前而言,這個問題可能被解釋爲要求一種工具(非主題)或主要是基於意見的工具。我不會投票結束,但也許您可以應用一些編輯來避免這些結果? – Andrie 2014-11-05 21:44:54
@Andrie在最後一段不是第一個問題嗎? – 2014-11-05 21:53:02
@PauloCardoso,Andrie指出,最後一段*中的第一個問題是*「請求工具」。我想用一段簡單的代碼將一個字符串傳遞給'execvp'會很容易... – 2014-11-05 22:55:41