Some(string。!!)在Scala中意味着什么?

时间:2016-03-09 19:20:57

标签: scala

我有

val str = s"""/bin/bash -c 'some command'"""
job = Some(str.!!)

这是为了执行我假设的bash命令。

有人可以解释这种语法吗? 谷歌搜索'。!!'并没有多大帮助'点惊叹号'所以我希望有人可以解释这个和/或指向我的文档。

作业没有运行,我正在尝试调试代码,但是当我把它放在

中时
try {
   command = Some(str.!!)
} 
catch { 
case e:Exception => 
  println(e.toString)
}
实际上,由于某种原因,e并不是例外...... 试图弄清楚这究竟是什么以及如何找到正在发生的事情。

1 个答案:

答案 0 :(得分:7)

StringProcessBuilder有一个implicit conversion。导入scala.sys.process._时,scala会在需要时自动执行转换,从而使方法!!可用于String实例。您可以在此处找到ProcessBuilder的方法:http://www.scala-lang.org/api/current/index.html#scala.sys.process.ProcessBuilder

!!的文档说"如果退出代码非零,则抛出异常。"在这种情况下,bash似乎返回0,因此该命令由于某种原因成功。