Ответ Тило самый простой. Однако, если вам нужно использовать «n», вам не повезло. Некоторые пользователи нашли эту ветку с примером кода Java: Java: обнаружение приглашения пользователя при запуске пакетного скрипта из Java
Я изменил его несколько для этой ситуации, и я думаю, что это позволит вам более консервативно использовать «n» в качестве выбора по умолчанию. Конечно, этот код можно изменить в скрипт bash, если вы предпочитаете, чтобы в ваших заданиях cron не работал класс java, но я оставлю это кому-то более опытному с bash.
У меня нет простого способа проверить этот код прямо сейчас, поэтому дайте мне знать, как он поживает. :)
public static void main(final String... args) throws IOException, InterruptedException {
final Runtime runtime = Runtime.getRuntime();
final String command = "..."; // cmd.exe
final String matchString = "Continue with Uninstall? [Yn] ";
final String response = "n";
final Process proc = runtime.exec(command, null, new File("."));
final BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
final BufferedWriter output = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
StringBuilder sb = new StringBuilder();
char[] cbuf = new char[100];
while (input.read(cbuf) != -1) {
sb.append(cbuf);
if (sb.substring(sb.length() - matchString.length(), sb.length()).equals(matchString)) {
output.write(response);
output.newLine();
output.flush();
}
}
System.out.println(sb);
}