저는 스칼라 초보자이고 쉘 명령을 호출하는 래퍼를 작성하고 있습니다. 현재 지정된 디렉터리의 파이프가있는 셸 명령을 호출하려고합니다. 파이프는 쉘의 기능 것을,스칼라 - 파이프가있는 쉘 명령
runCommand("ps -eF | grep -i foo", new File("."));
먼저 생각 : 예를 들어, 그러나 나는 파이프를 사용할 수 없습니다이 유틸리티를
def runCommand(command: String, directory: File): (Int, String, String) = {
val errbuffer = new StringBuffer();
val outbuffer = new StringBuffer();
//run the command
val ret = sys.process.Process(command, directory) !
//log output and err
ProcessLogger(outbuffer append _ + "\n", outbuffer append _ + "\n");
return (ret, outbuffer.toString(), errbuffer.toString());
}
:
내가 간단한 유틸리티를 쓴이를 달성하기 위해 그래서 "/ bin/sh -c ps -eF | grep -i foo"를 시도했지만 파이프 오른쪽의 표현식이 무시 된 것 같습니다.
나는 또한 명령을 실행 해 보았습니다! 구문 (sys.process._ 패키지),하지만 난, "cd"를 사용하지 않고 지정된 디렉토리에서 명령을 호출하는 방법을 알아낼 수 없습니다.
조언을 해주실 수 있겠습니까? 정확하게 어떻게 할 수 있습니까?
@xhochy합니다. 아무도 실수로 사용할 수 없도록 주석을 제거했습니다. :) –