2012-07-31 30 views
1

欲执行以下命令:Scala中:在执行外部进程,串逸出,和错误

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

如Scala中的一个Process。我用两个:

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之间发生了一些奇怪的事情,并且字符串解释不正确......任何想法?

+0

什么是'cmd'?什么是'filename'?什么是'a'? – 2012-07-31 12:57:58

+0

对不起。 '了'是从* VIM *神器,并且代码被剪切和粘贴,所以我有这些奇怪的变量(编辑) – 2012-07-31 13:49:25

回答

6

我猜你设置cmd为String。 !!然后分割每个空格字符的字符串以获取参数传递给l,,而不是关心您的'字符。

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.!! 
+0

谢谢,它的工作原理(*有*'''各地用户代理参数) – 2012-07-31 11:18:59

+0

心连心,编辑.... – 2012-07-31 11:30:53

相关问题