scala进程,空格不正常

时间:2012-11-19 15:55:52

标签: shell scala process pipe spaces

我有一个像下面这样的scala进程命令来使用linux bash egrep命令。但是终端和我的scala生成的文件中的搜索结果并不相同。 Scala结果包含具有“new”和“Exception”的所有内容,而我希望输出仅包含具有“new Exception”的行。我在这里错过了什么吗?请帮忙

    if (("egrep -r -I -n -E \"*new Exception*\" /mysource/" #| 
            "grep -v .svn").! == 0) {
        out.println(("egrep -r -I -n -E \"*new Exception*\" /mysource/" #| 
            "grep -v .svn").!!)
    }

1 个答案:

答案 0 :(得分:3)

docs说(在“运行的内容和方式”下):Implicitly, each process is created either out of a String, with arguments separated by spaces -- no escaping of spaces is possible -- or out of a scala.collection.Seq, where the first element represents the command name, and the remaining elements are arguments to it. In this latter case, arguments may contain spaces

因此,显然如果您需要通过命令行传递带有空格的单个参数,例如new Exception,则需要从Seq而不是String创建流程构建器