gpt4 book ai didi

java - 从 java 代码执行 shell 脚本并将终端的输出附加到 .txt 文件

转载 作者:行者123 更新时间:2023-11-30 10:14:59 25 4
gpt4 key购买 nike

我希望我的代码实现的是调用可用的两个 shell 脚本之一并执行一些命令,其输出将打印在 .txt 文件中。

到目前为止我已经设法实现了这一点(通过调用第一个脚本)但是当我尝试调用第二个脚本时终端没有打开并且命令的输出没有附加到 .txt 文件。

我的代码如下:

File file = new File("res/script1.sh");
String absolutePath = file.getAbsolutePath();

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("open -a Terminal "+absolutePath);

执行此操作后,.txt 文件包含短语“Hello World”。

我的第一个尝试是将 /script1.sh 更改为 /script2.sh 因为我认为第二个会在第二行添加另一个“Hellow World” .txt 文件。这不起作用,因为文件的内容保持不变,并且与第一种情况相反,终端甚至没有打开。

我还尝试复制这两个脚本的代码,并根据输入值 i==1i==2 执行一个或另一个但没有运气。

为什么我不能让第二个脚本工作,即使它与第一个相同?

我的脚本代码

#!/bin/sh
cd "$(dirname "$0")"
echo Hello World >> output.txt
exit

最佳答案

您可能需要按顺序运行进程,即在运行下一个进程之前等待进程完成。这主要是因为它们附加到同一个文件。要让进程完成,您必须消耗它的所有输出流。 This article更详细地解释了这件事。

关于java - 从 java 代码执行 shell 脚本并将终端的输出附加到 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50699258/

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