2017-01-23 36 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脚本,它可以节省您不必为每个系统命令添加前缀。它也将有助于解决相关问题,例如必须将每个/转换为\