2016-04-29 5 views
1

Я хочу, чтобы выполнить echo 'obase=94; 100' | bc >>out.txt для этого я использовалВыполнение эхо-команды в ProcessBuilder

String[] cmd = {"echo" , "'obase=94; 100'" , " | bc"}; 
new ProcessBuilder().command(cmd).redirectOutput(ProcessBuilder.Redirect.appendTo(new File("out.txt"))).start(); 

Внутри out.txt я вижу 'obase=94; 100' | bc' вместо 01 06

Где я неправильно?

ответ

3

| необходимо интерпретировать оболочкой.

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

Это сработало. Но вы можете объяснить это подробно? Я имею в виду, что делают 'bash' и' -c', как это работает и т. Д. –