2015-12-18 60 views
0

我現在用的是scala.sys.process包派遣郵件命令在Linux命令行從Scala的應用程序中:提供報價參數來scala.sys.process流程

val emailList = "[email protected],[email protected]" 

val emailFile = "/home/localUser/localFile.txt" 

import scala.sys.process._ 

(("cat " + emailFile) #| ("mail -s EmailSubject " + emailList)) ! 

到目前爲止好。不過,如果我想的電子郵件主題中包含空格郵件男人文件規定

-s subject Specify subject on command line ... be careful to quote subjects containing spaces.

當我嘗試換我受到的報價併發送至郵箱:

val emailSubject = " \"A Spaceful Email Subject\" " 

(("cat " + emailFile) #| ("mail -s" + emailSubject + emailList)) ! 

我得到一個錯誤:

ect"... Unbalanced '"'

那麼,如何使用scala.sys.process提供帶引號的參數?

預先感謝您的關懷和響應。

+0

嘗試使用字符串,而不是串聯的序列。在這裏看到:http://www.scala-lang.org/api/current/index.html#scala.sys.process.package –

+1

http://stackoverflow.com/questions/8376193/executing-bash-strings-using -scala-SYS-過程 –

+0

http://stackoverflow.com/questions/21247653/using-scala-sys-process-with-curl-single-quotes-and-white-space –

回答

2

當使用scala.sys.process你也可以使用Seq打包了參數,可以有任意空格,換行等

可執行的考慮:

val emailSubject = "A Spaceful Email Subject" 

(s"cat $emailFile" #| Seq("mail", "-s", emailSubject, emailList)).! 

你也可以看到這樣的例子在Scala 2.11.7 scaladocs

+0

謝謝你的解決方案,就像一個魅力。 –