Como salvar a saída de eco de um script de shell dentro do Java [duplicado]

Esta questão já tem uma resposta aqui:

Executando outro programa java do nosso programa java [duplicado] 3 respostas

Eu estou trabalhando em um programa Java que chama vários scripts Shell dentro de testes JUnit (portanto, nenhuma saída, exceto. E E), que manipulam arquivos e tabelas SQL e, em seguida, compara dados nas referidas tabelas com os valores esperados. Tudo funciona em teoria, no entanto estou encontrando um bug de strage onde um tipo de teste funciona como esperado enquanto o outro tipo falha após um tempo limite de dez minutos. Eu isolei o problema para ser um dos scripts do Shell, no entanto, não escrevi este script e não consigo alterá-lo de nenhuma maneira. A melhor maneira de solucionar isso é salvando a saída do script em questão, que vem de uma série de chamadas de eco. Existe uma maneira relativamente direta e confiável de salvar a saída de eco? Eu pesquisei um pouco, mas nada aparece. Eu não tentei armazenar a saída ainda, então eu não tenho uma tentativa de mostrar a você, mas o código que eu já escrevi que pode ser relevante é:

<code>//Currently using BufferedWriter, File, FileWriter, IOException, and Writer
import java.io.*;

//Method to write to a log file
public void record(String input) throws IOException {
  writer = new BufferedWriter(new FileWriter(file,true));
  writer.write(input + "\n");
  writer.close();
}

Runtime rt = Runtime.getRuntime();

//Several of these since a lot of file manipulation/script running occurs
process = rt.exec("./shell.sh");
process.waitFor();
</code>

Em outra pergunta que fiz, alguém recomendou não usar Runtime.exec () por vários motivos. Enquanto eu percebo as vantagens de não usar exec (), eu preciso para esta versão do programa.

A pergunta do dr: O meu programa Java pode facilmente executar scripts de shell, bem como salvar sua saída ecoada? Se não, há uma cauda -f equivalente para ler a saída?

questionAnswers(2)

yourAnswerToTheQuestion