[转]scala执行linux命令

[转]scala执行linux命令,第1张

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") !

直接将文字重定向到一个文件,我现在还不知道怎么做。只能变通用写文件的啰嗦方式。

Scala没有静态方法或静态字段,可以用object这个语法结构来达到同样的目的,对象定义了某个类的单个实例,包含了你想要的特性。

例如:

object Accounts{

private var lastNumber = 0

def newUniqueNumber()={lastNumber+=1lastNumber}

}

当你在应用程序中需要一个新的唯一账号时,调用Account.newUniqueNumber()即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12202918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存