我有
val str = s"""/bin/bash -c 'some command'"""
job = Some(str.!!)
这是为了执行我假设的bash命令。
有人可以解释这种语法吗? 谷歌搜索'。!!'并没有多大帮助'点惊叹号'所以我希望有人可以解释这个和/或指向我的文档。
作业没有运行,我正在尝试调试代码,但是当我把它放在
中时try {
command = Some(str.!!)
}
catch {
case e:Exception =>
println(e.toString)
}
实际上,由于某种原因,e并不是例外......
试图弄清楚这究竟是什么以及如何找到正在发生的事情。
答案 0 :(得分:7)
从String
到ProcessBuilder
有一个implicit conversion。导入scala.sys.process._
时,scala会在需要时自动执行转换,从而使方法!!
可用于String实例。您可以在此处找到ProcessBuilder的方法:http://www.scala-lang.org/api/current/index.html#scala.sys.process.ProcessBuilder
!!
的文档说"如果退出代码非零,则抛出异常。"在这种情况下,bash似乎返回0
,因此该命令由于某种原因成功。