【发布时间】:2026-02-06 20:15:01
【问题描述】:
我正在编写一个 javacode 来调用交互式 shellscript 并使用 process builder 来调用 shellscript。我知道要将参数传递给这个 shell 脚本,我必须使用它的输入流来检查它的输出,并且需要使用输出流将命令传递给它。我的问题是,我如何知道使用 Input Stream 提示输入值?
我的代码:
ProcessBuilder pb2=new ProcessBuilder("/home/abhijeet/sample1.sh","--ip="+formobj.getUpFile().getFileName(),"--seqs="+seqs);
script_exec = pb2.start();
OutputStream in = script_exec.getOutputStream();
InputStreamReader rd=new InputStreamReader(script_exec.getInputStream());
pb2.redirectError();
BufferedReader reader1 =new BufferedReader(new InputStreamReader(script_exec.getInputStream()));
StringBuffer out=new StringBuffer();
String output_line = "";
while ((output_line = reader1.readLine())!= null)
{
out=out.append(output_line+"/n");
System.out.println("val of output_line"+output_line);
//---> i need code here to check that whether script is prompting for taking input ,so i can pass it values using output stream
}
有没有办法直接知道脚本正在等待用户输入?
【问题讨论】: