我可以通过java运行交互式脚本吗?

时间:2017-02-11 09:41:40

标签: java linux shell

我想在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'

提前致谢

2 个答案:

答案 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命令,它同时是一个输入和输出命令...所以你可能会有一些麻烦。