У меня есть сценарий оболочки с одним параметром, следующим образом:
test. sh
#!/bin/bash
echo "Shell Demo";
echo "Hello $0";
Теперь я хочу выполнить этот сценарий, используя ProgressBuilder и передать параметры. Код java выглядит следующим образом:
public void testShell() throws Exception {
String shPath = "./test.sh";
// want to pass a value "Jack" to shell script
ProcessBuilder builder = new ProcessBuilder(shPath, "Jack");
Process result = builder.start();
result.waitFor();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(result.getInputStream()));
String output;
while ((output = stdInput.readLine()) != null) {
System.out.println(output);
}
}
Вывод:
Shell Demo
Hello ./test.sh
Вывод, который я хочу получить:
Shell Demo
Hello Jack