Google AdSense (text)

hidden logo stop

Moving

거지 같은 이글루스 광고노출 정책이 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[Groovy] Process pipe로 연결하기 Computer & Program

Groovy에서 process를 실행시키는건 간단하다.

'ls'.execute()

끄트!! -ㅅ-;;

프로세스 실행 성공여부와 결과도 가져와 보자.

def p = 'ls'.execute()
p.waitFor() // 프로세스 끝날 때 까지 대기
if(p.exitValue()) {
  println ' - F'
  println p.err.text
} else {
  println ' - S'
  println p.text
}

$ groovy test.groovy
- S
Test.class
Test.java
test.groovy


프로세스라면 역시 파이프!! 프로세스의 pipeTo() 메소드를 파이프 기호(|)로 오버로딩 해두었기 때문에 커맨드 라인과 비슷하게 사용하면 된다.
그리고 프로세스 명령의 전달인자는 배열로 구분해서 만들 수 있다.

def p1 = 'ls'.execute()
def p2 = 'tr -d a'.execute()
def p3 = ['tr', '-d', 'e'].execute()
def p = p1 | p2 | p3

// def p = p1.pipeTo(p2.pipeTo(p3))
p.waitFor()
if(p.exitValue()) {
  println ' - F'
  println p.err.text
} else {
  println ' - S'
  println p.text
}

assert p != p1
assert p != p2
assert p == p3

$ ls
Test.class Test.java test.groovy

$ ls | tr -d a | tr -d e
Tst.clss
Tst.jv
tst.groovy

$ groovy test.groovy
- S
Tst.clss
Tst.jv
tst.groovy


- 참고
Groovy - Process Management
PLEAC-Groovy16. Process Management and Communication

덧글

댓글 입력 영역

Google AdSense (text/image)