1

我想执行以下命令:

lynx -useragent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1' -source 'http://localhost'

作为ProcessScala 中的一个。我两个都用过:

val cmd = ... // command to execute
cmd #> new java.io.File( filename ) !

和:

val proc = Process( cmd )                                                  
proc !!

在这两种情况下,我都会收到以下错误lynx

Can't Access `file://localhost/home/me/Work/23.lynx/2.multidownload/(X11;'
Alert!: Unable to access document.

单独运行的命令运行良好,当我在 Scala 中运行它时——我得到了错误。这意味着 Scala 和 之间发生了一些奇怪的事情lynx,并且字符串没有被正确解释......知道吗?

4

1 回答 1

9

我猜你设置cmd为一个字符串。!!然后在每个空格字符处拆分字符串以获取要传递给 lynx 的参数,而不关心您的'字符。

import scala.sys.process._

val cmd = Seq("lynx",
              "-useragent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1'",
              "-source" "http://localhost")
val out = cmd.!!
于 2012-07-31T10:58:08.790 回答