Pergunta

I want to execute the following command:

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

as a Process in Scala. I used both:

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

and:

val proc = Process( cmd )                                                  
proc !!

And in both cases I get errors from lynx:

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

The command run alone works well, when I run it in Scala — I get errors. Which means that something strange happens between Scala and lynx, and the strings are not interpreted correctly… Any idea?

Foi útil?

Solução

I am guessing you set cmd to a String. !! then splits up the string at each space character to get the arguments to pass to lynx, not caring about your ' characters.

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.!!
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top