2014-03-13 17 views
0

我將一些從Java執行shell命令的舊代碼移植到Scala。 Scala代碼使用'!!'來自scala.sys.process的方法。我遇到的問題是Scala代碼將shell命令的stdout傳遞給scala的stdout,我真的只希望程序使用println()將它告訴給我。考慮下面的代碼在Scala過程中忽略stdout

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進程的標準輸出,使其不輸出?有什麼辦法可以讓這個過程沉默?

感謝

回答