是否有任何Scala内置类用于捕获外部进程的输出?

Geo*_*Geo 7 scala process

由于Scala有很多很酷的东西,我认为它可能有一些东西可以让捕获流程的输出变得容易.我知道Java的做法,但我想要另一种方式.

psp*_*psp 5

scala> scala.tools.nsc.io.Process("ls -1 /tmp | wc").stdout foreach println
      41      63     770
Run Code Online (Sandbox Code Playgroud)

或者有一个repl命令:

scala> :sh cat /etc/passwd | wc
stdout: List[String] = List(      65     185    3667)
Run Code Online (Sandbox Code Playgroud)

使用2.8发送任何IO代码将需要克服比我能击败的更多停止能量,所以我把它全部放在编译器中.scala.tools.nsc.io中有很多相当有用的东西.


Chr*_*Oei 5

从Scala 2.9开始,您可以:

import scala.sys.process.Process
println(Process("uname -a").!!.contains("x86_64"))
Run Code Online (Sandbox Code Playgroud)