Shell 忽略Scala进程中的标准输出
我正在将一些旧代码从Java移植到执行shell命令的Scala。Scala代码使用“!!”方法,该方法来自scala.sys.process。我遇到的问题是Scala代码正在将shell命令的stdout传递给Scala的stdout,在这里我只希望程序用println()打印我告诉它的内容。给定以下代码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
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