try {
// 定义Shell脚本和参数
String[] command = { "sh", "xxx.sh", param1, param2 };
// 创建进程构建器
ProcessBuilder processBuilder = new ProcessBuilder(command);
// 设置工作目录(如果需要)
// processBuilder.directory(new File("/path/to/your/script_directory"));
// 启动进程
Process process = processBuilder.start();
// 获取进程的输出流
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
log.info("line=[{}]",line);
}
// 等待进程执行完成
int exitCode = process.waitFor();
log.info("Shell脚本执行完毕,退出代码: [{}]" , exitCode);
} catch (Exception e) {
e.printStackTrace();
}
xxx.sh的路径需要写绝对路径,eg: /usr/local/xxx.sh
param1表示shell脚本里的第一个参数
param2表示shell脚本里的第二个参数
在shell脚本里面通过这样的方式获取param1和param2
#!/bin/bash
printf($1)
printf($2)
$1表示第一个参数param1
$2表示第二个参数param2