在Java程序中,可以使用ProcessBuilder
类来执行shell脚本,并且可以通过标准输入流(stdin)向shell脚本传递参数。要实现仅在Java程序需要时才将'y'或'n'传递给shell脚本,可以按照以下步骤进行操作:
ProcessBuilder
对象,并设置要执行的shell命令,例如:ProcessBuilder pb = new ProcessBuilder("/bin/sh", "your_script.sh");
ProcessBuilder
对象的标准输入流,并将其转换为BufferedWriter
对象,以便向shell脚本传递参数,例如:Process process = pb.start();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
Scanner scanner = new Scanner(System.in);
System.out.print("Do you want to pass 'y' or 'n' to the shell script? (y/n): ");
String input = scanner.nextLine();
if (input.equalsIgnoreCase("y")) {
writer.write("y");
} else if (input.equalsIgnoreCase("n")) {
writer.write("n");
}
writer.newLine();
writer.flush();
writer.close();
process.waitFor();
通过以上步骤,就可以在Java程序需要时将'y'或'n'传递给shell脚本。请注意,以上代码仅为示例,实际使用时需要根据具体情况进行适当的修改。
推荐的腾讯云相关产品:腾讯云服务器(CVM)和云函数(SCF)。
领取专属 10元无门槛券
手把手带您无忧上云