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") !
直接将文字重定向到一个文件,我现在还不知道怎么做。只能变通用写文件的啰嗦方式。
网友评论