2017-01-23 1 views
6

Windows 용 R에는 시스템 명령을 호출하는 두 가지 기능이 있습니다. 한편으로는 system() (또는 더 새로운 system2() 함수)를 사용하여 시스템 명령을 실행할 수 있습니다. 반면에 shell()을 사용할 수 있습니다. 제 생각에는 둘 다 똑같이해야합니다. 그들 사이의 차이점은 무엇입니까?system()과 shell()의 차이

설명서를 읽으면서 쉘은 시스템을보다 사용자 친화적 인 래퍼로 설명합니다. 둘 다 약간 다른 논점을 가지고 있음을 알 수 있습니다 만, 쉘을 좀 더 사용자 친화적으로 호출한다는 점은 실제로 볼 수 없습니다. 이것을 제외하고는 다른 차이점을 볼 수 없으며 일부 기본 코드를 실행하더라도 동일한 결과가 나타납니다 (따옴표 제외).

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

하나가 아닌 다른 것을 사용하는 인수는 무엇입니까?

+0

@ChirayuChamoli 그 다른 점은 PHP에 관한 것입니다. R은 PHP가 아닙니다. –

답변

0

시스템 명령이 CMD.EXE (Windows의 기본값)으로 허용되는 경우 많은 차이가 없습니다. 그러나 sh과 같은 다른 쉘을 사용하여 비 -cmd.exe 스크립트를 실행하려는 경우 모든 시스템 명령의 접두사를 저장하지 않아도됩니다. 또한 \에 대해 /을 모두 전환해야하는 것과 같은 관련 문제에 도움이됩니다.