【发布时间】: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