Shell 忽略Scala进程中的标准输出

Shell 忽略Scala进程中的标准输出,shell,scala,Shell,Scala,我正在将一些旧代码从Java移植到执行shell命令的Scala。Scala代码使用“!!”方法,该方法来自scala.sys.process。我遇到的问题是Scala代码正在将shell命令的stdout传递给Scala的stdout,在这里我只希望程序用println()打印我告诉它的内容。给定以下代码 import scala.sys.process._ class FidoWrapper(file: java.io.File){ val fido = ("fido " + file

我正在将一些旧代码从Java移植到执行shell命令的Scala。Scala代码使用“!!”方法,该方法来自scala.sys.process。我遇到的问题是Scala代码正在将shell命令的stdout传递给Scala的stdout,在这里我只希望程序用println()打印我告诉它的内容。给定以下代码

import scala.sys.process._

class FidoWrapper(file: java.io.File){
  val fido = ("fido " + file.getAbsolutePath).!!
}

object Wrapper{
  def main(args: Array[String]){
    val wrapper = new FidoWrapper(new java.io.File("src/main/resources/testfile.txt"))
    println("===")
    println("result: " + wrapper.fido.split(",")(0))
  }
}
我得到以下输出:

FIDO v1.3.1 (formats-v70.xml, container-signature-20130501.xml, format_extensions.xml)
FIDO: Processed      1 files in 468.12 msec,  2 files/sec
===
result: OK
我想要的是:

===
result: OK
这就是我最初的Java代码所做的。我是否可以从shell进程重定向stdout,使其不输出?有没有办法让这个过程安静下来

谢谢

使用
您可以指定一个
ProcessLogger
来处理所有IO