Java 在ProcessBuilder中执行echo命令

Java 在ProcessBuilder中执行echo命令,java,Java,我想执行echo'obase=94;100'| bc>>out.txt我已经用过了 String[] cmd = {"echo" , "'obase=94; 100'" , " | bc"}; new ProcessBuilder().command(cmd).redirectOutput(ProcessBuilder.Redirect.appendTo(new File("out.txt"))).start(); Insideout.txt我看到了obase=94;100'| bc'而不是0

我想执行
echo'obase=94;100'| bc>>out.txt
我已经用过了

String[] cmd = {"echo" , "'obase=94; 100'" , " | bc"};
new ProcessBuilder().command(cmd).redirectOutput(ProcessBuilder.Redirect.appendTo(new File("out.txt"))).start();
Inside
out.txt
我看到了obase=94;100'| bc'而不是
01 06


哪里出了问题?

|
需要由shell进行解释

String[] cmd = {"bash", "-c", "echo 'obase=94; 100' | bc"};

成功了。但你能详细解释一下吗?我的意思是
bash
-c
做什么,它是如何工作的等等。