Diferença entre sistema() e shell () [duplicado]

esta pergunta já tem uma resposta aqui:

no R para o Windows, existem duas funções para invocar os comandos do sistema. Por um lado, é possível usar a função system() (ou a mais recente função system2 ()) para executar comandos do sistema. Por outro lado, é possível usar shell(). Na minha opinião, ambos deveriam fazer o mesmo. Qual seria a diferença entre eles?

A partir da leitura da documentação, a shell é descrita como uma embalagem mais amigável em torno do sistema. Eu posso ver que ambos têm argumentos ligeiramente diferentes, mas eu realmente não vejo o ponto de chamar shell mais user-friendly. Exceto por isso, eu não posso ver quaisquer outras diferenças e até mesmo executar algum código básico dá os mesmos resultados (exceto para as citações).

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

Qual seria o argumento para usar um em vez do outro?

 6
Author: takje, 2017-01-23

1 answers

Se os seus comandos do sistema forem aceites por CMD.EXE (por omissão no Windows), não há muita diferença. No entanto, se quiser usar conchas diferentes como sh para executar não-CMD.scripts exe, ele pode salvar você ter que prefixar todos os comandos do sistema. Também ajudará em questões relacionadas, tais como ter que mudar cada / para \.

 0
Author: mpjdem, 2017-01-23 14:29:56