确认消息 Spring shell
Confirmation message Spring shell
有没有办法让 spring-shell 命令先请求确认消息。例如
command
是否要继续[y/n]
y
正在执行命令
我在互联网上做了一些研究,但没有找到此类命令的示例。
您可以阅读 System.in
和 continue/abort 您认为合适的命令执行。
我正在使用 jline.console.ConsoleReader
(spring-shell 目前也在使用),所以代码看起来像:
public static boolean askYesNo(String question) {
while (true) {
String backup = ask(String.format("%s (y/n): ", question));
if ("y".equals(backup)) {
return true;
}
if ("n".equals(backup)) {
return false;
}
}
}
public static String ask(String question) {
question = "\n" + question + " > ";
try {
ConsoleReader consolereader = new ConsoleReader();
return consolereader.readLine(question);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
try {
System.out.println("** Press 'y' to delete OR 'n' to cancel operation **");
ConsoleReader consolereader = new ConsoleReader();
int readCharacter = consolereader.readCharacter('y','n');//just can read 'y' and 'n' char. y=121 , n=110
System.out.println(readCharacter);
if (readCharacter == 121) {
// do delete operation
} else if (readCharacter == 110) {
// do cancel operation
}
} catch (Exception e) {
e.printStackTrace();
}
** 按 'y' 删除或 'n' 取消操作 **
121
有没有办法让 spring-shell 命令先请求确认消息。例如
command
是否要继续[y/n]
y
正在执行命令
我在互联网上做了一些研究,但没有找到此类命令的示例。
您可以阅读 System.in
和 continue/abort 您认为合适的命令执行。
我正在使用 jline.console.ConsoleReader
(spring-shell 目前也在使用),所以代码看起来像:
public static boolean askYesNo(String question) {
while (true) {
String backup = ask(String.format("%s (y/n): ", question));
if ("y".equals(backup)) {
return true;
}
if ("n".equals(backup)) {
return false;
}
}
}
public static String ask(String question) {
question = "\n" + question + " > ";
try {
ConsoleReader consolereader = new ConsoleReader();
return consolereader.readLine(question);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
try {
System.out.println("** Press 'y' to delete OR 'n' to cancel operation **");
ConsoleReader consolereader = new ConsoleReader();
int readCharacter = consolereader.readCharacter('y','n');//just can read 'y' and 'n' char. y=121 , n=110
System.out.println(readCharacter);
if (readCharacter == 121) {
// do delete operation
} else if (readCharacter == 110) {
// do cancel operation
}
} catch (Exception e) {
e.printStackTrace();
}