【发布时间】:2020-05-15 01:02:28
【问题描述】:
我有一个带一个参数的shell脚本,如下:
test.sh
#!/bin/bash
echo "Shell Demo";
echo "Hello $0";
现在我想使用 ProgressBuilder 执行这个脚本并传递参数。 java代码如下:
public void testShell() throws Exception {
String shPath = "./test.sh";
// want to pass a value "Jack" to shell script
ProcessBuilder builder = new ProcessBuilder(shPath, "Jack");
Process result = builder.start();
result.waitFor();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(result.getInputStream()));
String output;
while ((output = stdInput.readLine()) != null) {
System.out.println(output);
}
}
输出:
Shell Demo
Hello ./test.sh
我想要的输出是:
Shell Demo
Hello Jack
【问题讨论】:
-
尝试打印 $1 因为 $0 将始终是 unix 中的脚本/程序名称
标签: java shell processbuilder