执行命令并提示输入 YES

Execute command with prompt YES input

 public static String executeCommand(String command) {
    StringBuffer sb = new StringBuffer();
    Process p;
    try {
      p = Runtime.getRuntime().exec(command);
      p.waitFor();
     }   BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
      String line = "";
      while ((line = reader.readLine()) != null) {
        sb.append(line + "\n");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return sb.toString();
}

给定的代码可以正常执行任何命令,但我有一个命令需要 YES/NO 作为输入。如何将输入提供给命令以供进一步执行?

例如

executeCommand("pio app data-delete model");

output-
[INFO] [App$] Data of the following app (default channel only) will be deleted. Are you sure?
[INFO] [App$]     App Name: twittermodeling
[INFO] [App$]       App ID: 14
[INFO] [App$]  Description: None
Enter 'YES' to proceed:

所以我怎么能给他们 YES 以进一步执行。

谢谢

这样做:

line = reader.readLine();

if (line.toLowerCase().equals("yes")){
    ....
}
else if (line.toLowerCase().equals("no")){
    ....
}
else {
    ...
}

如果你真的需要将 "YES" 传递给 unix 命令,你可以在它前面加上 echo YES |echo YES | pio app data-delete model 应该强制删除。

在 runtime.exec() 的上下文中认为无法正确评估管道,请参阅 this post 了解更多信息。

但是,您应该做的第一件事是检查 pio 命令是否没有 "force" 标志,通常是 -f,这会忽略用户交互。