![](/img/trans.png)
[英]How to redirect the stdout and stderr in rolling file with Unix redirection
[英]Bash Process To Echo to Stderr WITHOUT Redirection
我在使用 ProcessBuilder 的另一种语言(Java)中,但这有点离题。 我需要一个 bash 进程,它将写入我可以使用 ProcessBuilder 调用的 stderr。
例子:
ProcessBuilder pb = new ProcessBuilder("echo", "a");
Process p = pb.start();
p.getErrorStream(); // I need this to return "a".
我试过在ProcessBuilder
的构造函数中添加 ">&2" ,但它说没有命令>&2
。 我试过使用echoerr
,但那是 bash function,不是真正的命令,所以找不到。 有没有我可以在不转发返回 stderr 的情况下使用的命令? Awk? Perl? 任何事物? :D
您可以使用bash
(或sh
)运行命令以使用重定向运算符:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class StdErr {
public static void main(String[] args) throws IOException {
ProcessBuilder pb = new ProcessBuilder("sh", "-c", "echo a >&2");
Process p = pb.start();
try (BufferedReader r = new BufferedReader(new InputStreamReader(p.getErrorStream()))) { // I need this to return "a".
r.lines().forEach(System.err::println);
}
}
}
输出: a
(到 Java 进程的标准错误流)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.