【发布时间】:2012-08-08 00:43:39
【问题描述】:
如何正确使用 scala 在目录上调用 lsoft +d?
例子:
import scala.sys.process._
("lsof +d /home/brad")
【问题讨论】:
-
-1。您实际上是否有需要解决的具体问题,或者您只需要参考即可开始?谷歌通常很适合后者。
如何正确使用 scala 在目录上调用 lsoft +d?
例子:
import scala.sys.process._
("lsof +d /home/brad")
【问题讨论】:
理论上是这样的
import sys.process._
"lsof +d /home/brad".!!
或
Seq("lsof", "+d", "/home/brad").!!
问题是这个进程可能有一个非零的退出值,然后!!方法只是抛出一个异常而你没有得到结果字符串。
作为一种解决方法,即使存在退出值 1,以下方法似乎也有效:
Seq("lsof", "+d", "/home/brad").lines_!.mkString("\n")
如果您也希望检查退出值,您可以在进程记录器中捕获输出:
var lines = Vector.empty[String]
val log = ProcessLogger(lines :+= _)
val p = Seq("lsof", "+d", "/home/brad").run(log)
val res = p.exitValue // blocks until process is finished and returns the exit value
val s = lines.mkString("\n") // the resulting output
【讨论】: