【问题标题】:How to print the output of a bash script to Java standard output [duplicate]如何将bash脚本的输出打印到Java标准输出[重复]
【发布时间】:2018-05-01 16:53:32
【问题描述】:

我想在我的 java 标准输出中看到一个 bash 脚本的输出。

我的 shell 脚本 script01.sh 看起来像这样:

#!/bin/bash
echo "SQL version is:"
basename $(docker exec sql-container readlink current)

上面的输出例如是:

MyTerminal$> ./script01.sh
SQL version is:
14-2-release01

我希望它显示在我的 java 标准输出中。 当我运行这个方法时,它不打印!

private static void printCurrentVersion() throws IOException {
    Process p = Runtime.getRuntime().exec(new String[] {"bash", "-c", "./script01.sh"});
    System.out.println("Did this # println appear?");
}

但是,唯一打印的是:Did this # println appear?

有什么想法吗?

【问题讨论】:

  • 在问这个问题之前你搜索了吗?找到this
  • 如果你想让脚本的标准输出不通过管道读取到你的Java进程的标准输出,你可以使用ProcessBuilder.redirectOutput(Redirect.INHERIT)ProcessBuilder.inheritIO()

标签: java bash shell java.util.logging


【解决方案1】:

【讨论】:

  • 虽然我同意这个问题并不是普遍存在的,但它试图实现与您建议的不同的东西。感谢您的意见。
猜你喜欢
  • 2018-08-10
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多