我想在linux平台上通过java运行一个脚本,它只是询问问题,我可以输入它的答案,然后它可以继续进行。我无法找到办法做到这一点。 我可以通过java运行我的脚本,但它如何接受我的答案?
这是我的简单脚本test.sh
read -p "What is your name?" name echo $name read -p "What is your age?" age echo $age echo 'done'
提前致谢
答案 0 :(得分:1)
试试这个 -
String command = "test.sh";
Process process;
process = Runtime.getRuntime().exec(command);
process.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String response= "";
while ((response= reader.readLine()) != null) {
System.out.println(response);
}
答案 1 :(得分:0)
您可以查看ProcessBuilder
课程:
ProcessBuilder pb = new ProcessBuilder("/path_to_your_script.sh");
pb.inheritIO(); // redirect input and output
Process p = pb.start();
p.waitFor(); // allow to wait the end of your process
但是在你的脚本示例中,你有一个read -p
命令,它同时是一个输入和输出命令...所以你可能会有一些麻烦。