2013-04-23 26 views
13

Scala veya Play olup olmadığını bilmiyorum! soru. Play uygulamasından bazı harici komutları yürütmek, çıktıyı komuttan almak ve komut çıktısına dayalı olarak kullanıcıya bir rapor göstermek istiyorum. Biri yardım edebilir mi?Harici komutu çalıştır

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

, biçimi ve ayrıştırma dert etmeyin: Ben kabuğundan my-komutunu girmek Örneğin

, ben yakalamak ve web göstermek istiyorum aşağıda gibi çıktı, gösterir çıktı. Fonksiyonel olarak, PHP exec gibi bir şey arıyorum. Java Runtime.getRuntime(). Exec ("command") hakkında biliyorum ama amaca hizmet etmek için herhangi bir Scala/Play sürümü var mı?

cevap

35

Önce scala işlem paketlerini içe aktarmanız gerekmektedir. Yöntem !! ihtiyacınız olanı yapar, deyimi çalıştırır ve metin çıktısını yakalar.

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

[Kullanışlı dökümantasyon linki] (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")! 

Bu, giriş dizininizde bir geçici dosya olduğunu varsayar. !, komutun gerçek çalışması içindir. Daha fazla bilgi için scala.sys.process bakın.

+0

Çok teşekkürler, İşlemci sınıfını kullanmadım. –

İlgili konular