2017-01-23 121 views
6

在Windows上,R有兩個函數可以調用系統命令。一方面可以使用system()(或更新的system2()函數)來執行系統命令。另一方面,可以使用shell()。在我看來,他們都應該這樣做。他們之間有什麼區別?system()和shell()之間的區別

通過閱讀文檔,shell被描述爲更加用戶友好的系統包裝。我可以看到兩者的論點略有不同,但我並不認爲調用shell更方便用戶。除此之外,我看不到任何其他差異,甚至執行一些基本代碼給出相同的結果(引號除外)。

> system('ECHO "test"') 
test 
> shell('ECHO "test"') 
"test" 

什麼是使用一個而不是另一個的論點?

+0

@ChirayuChamoli由於這個驚人的差異,另一個問題是關於PHP。 R不是PHP。 –

回答

0

如果您的系統命令被CMD.EXE(Windows上的默認設置)接受,則沒有太大區別。但是,如果您想使用不同的shell像sh來執行非CMD.exe腳本,它可以節省您不必爲每個系統命令添加前綴。它也將有助於解決相關問題,例如必須將每個/轉換爲\

相關問題