system()和shell()的区别

9
在Windows上的R语言中,有两个函数可以调用系统命令。一方面,可以使用system()(或更新的system2()函数)来执行系统命令。另一方面,也可以使用shell()。在我看来,它们应该做相同的事情。它们之间有什么区别呢?
从文档中可以看出,shell被描述为一个更加用户友好的system包装器。我可以看到它们都有稍微不同的参数,但我真的不明白为什么要称shell更加用户友好。除此之外,我没有发现任何其他的区别,即使执行一些基本代码也得到了相同的结果(除了引号)。
> system('ECHO "test"')
test
> shell('ECHO "test"')
"test"

使用其中一个参数的理由是什么,而不使用另一个参数呢?

@ChirayuChamoli,区别就在于另一个问题是关于PHP的,而R不是PHP。 - Joris Meys
1个回答

2

如果您的系统命令被CMD.EXE(Windows上的默认选项)接受,那么没有太大区别。但是,如果您想使用不同的shell(如sh)来执行非CMD.exe脚本,则可以避免在每个系统命令前加前缀。它还有助于解决相关问题,例如需要将每个/替换为\


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接