2013-04-23 6 views
13

스칼라인지 재생인지 알 수 없습니다! 문제. 내 Play 응용 프로그램에서 일부 외부 명령을 실행하고 명령 출력을 가져오고 명령 출력을 기반으로 사용자에게 보고서를 표시하려고합니다. 누구든지 도와 줄 수 있습니까?외부 명령 실행

Id Name IP 
==================== 
1  A  x.y.z.a 
2  B  p.q.r.s 

는,의 형식과 구문 분석에 대해 걱정하지 마십시오 : 나는 쉘에서 내-명령를 입력 예를 들어

는, 내가 캡처 및 웹에 표시하려면 다음과 같은 출력을 보여줍니다 출력. 기능적으로, 나는 PHP exec과 같은 것을 찾고있다. 나는 Runtime.getRuntime(). exec ("command")에 대해 알고 있지만 목적을 달성하기위한 Scala/Play 버전이 있습니까?

답변

35

먼저 스칼라 프로세스 패키지를 가져와야합니다. 방법은 !!은 필요한 것을 수행하고, 명령문을 실행하고 텍스트 출력을 캡처합니다.

import scala.sys.process._ 
val cmd = "uname -a" // Your command 
val output = cmd.!! // Captures the output 
+4

[Handy documentation link] (http://www.scala-lang.org/api/2.10.4/#scala.sys.processage) – BeepDog

7
scala> import scala.sys.process._ 
scala> Process("cat temp.txt")! 

여기에는 가정용 디렉토리에 임시 파일이 있다고 가정합니다. !은 명령을 실제로 실행하기위한 것입니다. 자세한 정보는 scala.sys.process를 참조하십시오.

+0

고맙게도 Process 클래스에 대해 언급하지 않았습니다. –