【问题标题】:scala call to linux lsof command searching directories?scala调用linux lsof命令搜索目录?
【发布时间】:2012-08-08 00:43:39
【问题描述】:

如何正确使用 scala 在目录上调用 lsoft +d?

例子:

import scala.sys.process._

("lsof +d /home/brad") 

【问题讨论】:

标签: scala process


【解决方案1】:

理论上是这样的

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-13
    • 2018-05-03
    • 2017-11-16
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 2023-03-24
    • 2010-10-26
    相关资源
    最近更新 更多