gpt4 book ai didi

java - 如何仅在 Java 程序需要时才将 'y' 或 'n' 传递给 shell 脚本?

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:18 25 4
gpt4 key购买 nike

我有一个调用 shell 脚本的 java 代码。有时我的脚本要求输入 y 或 n,我在网上查找并发现:

yes y| path/to/script/script.sh

我认为上面的方法在以下情况下也能正常工作:

yes y| path/to/script/script.sh parameters_to_script. 

下面是我的代码片段:

String script_path_parameters = "yes y| path/to/script/script.sh parameters_to_script ";
Process p = Runtime.getRuntime().exec(script_path_parameters);
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream());
while((line = b.readLine())!=null){
system.out.println(line); // This will print whatever script is doing.
}

我的脚本通过在控制台上打印而进入无限循环:

yes y| path/to/script/script.sh parameters_to_script 
y| path/to/script/script.sh parameters_to_script
y| path/to/script/script.sh parameters_to_script
y| path/to/script/script.sh parameters_to_script
y| path/to/script/script.sh parameters_to_script

最佳答案

您需要将“y”写入进程的标准输入。

所以类似的事情。

    PrintWriter writer = new PrintWriter(p.getInputStream());
writer.println("y");

关于java - 如何仅在 Java 程序需要时才将 'y' 或 'n' 传递给 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39552150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com