【问题标题】:How to execute BASH source command from scala 2.11?如何从 scala 2.11 执行 BASH 源命令?
【发布时间】:2018-07-13 05:41:17
【问题描述】:

如何使用 scala 2.11 执行 BASH 'source' 命令?

import scala.sys.process.Process

object putFileToHDFS {
  def main(args: Array[String]): Unit = {
    println("""In class putFileToHDFS""");

    val tester = Process("source ./trial.sh").lineStream;
    tester.foreach(println)


  }
}

【问题讨论】:

  • 从 Scala 中“获取”一个 bash 脚本意味着什么?由于 Scala 根据定义不是 bash,因此它显然不能“源”具有 bash 定义的文件。不清楚您预期会发生什么。

标签: java eclipse bash scala shell


【解决方案1】:

我认为这相当于 source 所做的。

import scala.sys.process._

              //send file contents to sh for interpretation
val tester = "/bin/cat /path/trial.sh".#|("/bin/sh").lineStream

当然,如果trial.sh 是可执行的,事情就容易多了。

val tester = "/bin/sh -c /path/trial.sh".lineStream

【讨论】:

    【解决方案2】:

    您不需要获取脚本文件的来源,因为您只需要在您想要包含另一个脚本时执行此操作。您需要做的就是运行它:

    Process("bash trial.sh").lineStream
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      相关资源
      最近更新 更多