Tôi đang thực hiện một số lệnh từ dòng lệnh trong chương trình java của tôi, và có vẻ như nó không cho phép tôi sử dụng "grep"? Tôi đã thử nghiệm điều này bằng cách loại bỏ phần "grep" và lệnh chạy tốt!Java Runtime Process Sẽ không "Grep"
Mã của tôi mà KHÔNG làm việc:
String serviceL = "someService";
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("chkconfig --list | grep " + serviceL);
Mã mà không làm việc:
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("chkconfig --list");
Tại sao điều này? Và có một số phương pháp đúng hay cách giải quyết khác không? Tôi biết rằng tôi chỉ có thể phân tích cú pháp toàn bộ đầu ra, nhưng tôi sẽ thấy dễ dàng hơn khi làm tất cả từ dòng lệnh. Cảm ơn.
Không có lý do gì tôi không thể khớp trong Java. Tôi chỉ đoán nó sẽ nhanh hơn để viết ra grep hơn để phân tích đầu ra. Tôi tương đối mới với Linux vì vậy tôi không biết rằng grep là một chức năng của trình bao. Cảm ơn! – Max
@Max: grep không phải là nội trang hệ vỏ, phần tử '|' là một tính năng cú pháp vỏ. – ninjalj