scala中執行外部命令(scala.sys.process)
發表回復
目前 scala.sys.process 已經封裝的足夠簡單。參考:http://itang.iteye.com/blog/1126777
scala> import scala.sys.process._
// 只需在結尾用!號,就表示執行外部命令
scala> val list = "ls -l" !
還可以重定向,甚至可以在java對象與命令之間:
scala> new java.net.URL("http://www.iteye.com") #>
new java.io.File("/tmp/iteye.html") !
注意,重定向必須用 new java.io.File("") 封裝,否則會當作命令,比如
scala> "ls" #> "/tmp/a" !
將會出錯,必須
scala> "ls" #> new java.io.File("/tmp/a") !
管道的用法:
scala> val list = "ls -l" #| "grep P" !
不能在命令表達式中直接用管道, 比如 "ls | grep XXX" 這樣不靈,必須用 #| 聲明。
更多參考:https://github.com/harrah/xsbt/wiki/Process
//2012.6.15
要把System.getProperties 里的內容重定向到一個文件如何實現?
下面的方法不行,它會將第一個表達式的結果當作命令來執行
scala> System.getProperties.toString #> new java.io.File("/tmp/env") !
直接將文字重定向到一個文件,我現在還不知道怎么做。只能變通用寫文件的啰嗦方式。