首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用设置了PS4的java在调试模式下运行bash脚本

使用设置了PS4的java在调试模式下运行bash脚本
EN

Stack Overflow用户
提问于 2012-06-01 17:39:39
回答 1查看 680关注 0票数 1

我想使用设置了PS4环境变量的Java在调试模式下运行我的bash脚本。

代码语言:javascript
复制
ProcessBuilder pb = new ProcessBuilder("/bin/bash" ,"-x", "/junk/leaptest.sh");
Map<String, String> env = pb.environment();
env.put("PS4", "${BASH_SOURCE}:::${LINENO}:::COV:");
final Process process = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
PrintWriter pw = new PrintWriter(process.getOutputStream());
String line;
while ((line = br.readLine()) != null) {
    System.out.println("line no--->>" + line);
    pw.println("2000");
    pw.flush();
}

我得到的输出是因为它没有在调试模式下运行,并且我的PS4环境没有设置

当我使用Runtime命令时,

代码语言:javascript
复制
String[] cmd = new String[3];
cmd[0] = "/bin/bash"; // should exist on all POSIX systems
cmd[1] = "-xv";
cmd[2] = args[0];

String[] env = new String[1];
env [0] = "PS4=${BASH_SOURCE}:::${LINENO}::: COV:";
Runtime rt = Runtime.getRuntime();
System.out.println("Execing " + cmd[0]  + cmd[1]);

Process proc = rt.exec(cmd,env);
EN

回答 1

Stack Overflow用户

发布于 2012-07-18 04:17:24

bash使用-x运行时,它将跟踪信息写入标准错误,而不是标准输出。你需要用下面这样的东西来捕捉它:

代码语言:javascript
复制
PrintWriter pwe = new PrintWriter(process.getErrorStream());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10847904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档