gpt4 book ai didi

java - 如何从java索引插入shell脚本

转载 作者:行者123 更新时间:2023-11-30 02:04:44 25 4
gpt4 key购买 nike

我正在使用 Java 运行 sh 文件。

但是,问题是如何在Eclipse执行sh文件时将Java的变量放入sh变量中。

我正在使用 Eclipse。

这是我的代码

test.sh
#!/bin/sh
docker run -it --name $1 ubuntu:16.04
exit 0

在java中

public static void makeContainer() throws Exception {
//String makecontainer = "/usr/local/bin/docker run --name "+fileName+" ubuntu:16.04";

String[] command = { "/bin/sh","/Users/keomgong1/Desktop/test.sh", fileName };
Process process = Runtime.getRuntime().exec(command);

process.getInputStream();
InputStream is = process.getInputStream();
BufferedReader bf = new BufferedReader(new InputStreamReader(is));

}

我想要 $1 作为文件名,但它没有按预期运行。

文件名是java字符串索引。

出了什么问题?

我能做什么?

最佳答案

脚本名称后的第一个参数是程序名称 ($0),而不是第一个位置参数 ($1)。

您可以为 $0 添加一个虚拟文件名,然后您的下一个参数将为 $1:

String[] command = { "/bin/sh","/Users/keomgong1/Desktop/test.sh", "_", fileName };

但是,最好直接运行脚本,而不是使用 /bin/sh:

String[] command = { "/Users/keomgong1/Desktop/test.sh", fileName };

这需要 test.sh 具有 shebang(第一行是 #!/bin/sh)和执行权限(chmod +x/Users/keomgong1/Desktop/test.sh)。

关于java - 如何从java索引插入shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51694037/

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