2017-01-23 28 views
6

Trên R cho Windows, có hai chức năng để gọi các lệnh hệ thống. Một mặt có thể sử dụng system() (hoặc hàm system2() mới hơn để thực hiện các lệnh hệ thống. Mặt khác, có thể sử dụng shell(). Theo tôi, cả hai đều nên làm như vậy. Sự khác nhau giữa chúng là gì?Sự khác biệt giữa system() và shell()

Từ đọc tài liệu, trình bao được mô tả là trình bao bọc thân thiện với người dùng hơn xung quanh hệ thống. Tôi có thể thấy rằng cả hai đều có các đối số hơi khác nhau, nhưng tôi không thực sự thấy điểm gọi vỏ thân thiện với người dùng hơn. Ngoại trừ điều này, tôi không thể thấy bất kỳ sự khác biệt nào khác và thậm chí thực thi một số mã cơ bản cho kết quả tương tự (ngoại trừ các dấu ngoặc kép).

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

Điều gì sẽ là lý lẽ để sử dụng cái này chứ không phải cái kia?

+0

@ChirayuChamoli Với sự khác biệt nổi bật mà câu hỏi khác là về PHP. R không phải là PHP. –

Trả lời

0

Nếu lệnh hệ thống của bạn được chấp nhận bởi CMD.EXE (mặc định trên Windows), không có nhiều khác biệt. Tuy nhiên nếu bạn muốn sử dụng các shell khác nhau như sh để thực thi các script không phải CMD.exe, nó có thể giúp bạn tiết kiệm tiền tố cho mỗi lệnh hệ thống. Nó cũng sẽ trợ giúp các vấn đề liên quan như phải chuyển đổi mỗi / cho \.

Các vấn đề liên quan