2013-04-23 16 views
13

Non so se è un gioco Scala o Play! domanda. Voglio eseguire un comando esterno dalla mia applicazione Play, ottenere l'output dal comando e mostrare un report all'utente in base all'output del comando. Qualcuno può aiutare?Esegui comando esterno

Per esempio, quando entro il mio comando da shell che mostra l'output come qui di seguito, che voglio catturare e mostrare nel web:

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

Ti prego, non preoccuparti per il formato e l'analisi di Il risultato. Funzionalmente, sto cercando qualcosa come PHP exec. Conosco java Runtime.getRuntime(). Exec ("command") ma c'è qualche versione di Scala/Play per servire allo scopo?

risposta

35

È necessario importare prima i pacchetti di processo di scala. Il metodo !! fa quello che ti serve, esegue l'istruzione e cattura l'output del testo.

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.process.package) – BeepDog

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

Questo presuppone che ci sia un file temporaneo nella vostra home directory. ! è per l'esecuzione effettiva del comando. Vedi scala.sys.process per maggiori informazioni.

+0

Grazie mille, non ho parlato della classe Process. –