Java执⾏shell脚本并返回结果两种⽅法的完整代码Java执⾏shell脚本并返回结果两种⽅法的完整代码
简单的是直接传⼊String字符串,这种不能执⾏echo 或者需要调⽤其他进程的命令(⽐如调⽤postfix发送邮件命令就不起作⽤)
执⾏复杂的shell建议使⽤String[]⽅式传递(对外可以封装后也传⼊String字符串)。
/**
* 运⾏shell脚本
* @param shell 需要运⾏的shell脚本
*/
public static void execShell(String shell){
try {
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 运⾏shell脚本 new String[]⽅式
* @param shell 需要运⾏的shell脚本
*/
public static void execShellBin(String shell){
try {
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 运⾏shell并获得结果,注意:如果sh中含有awk,⼀定要按new String[]{"/bin/sh","-c",shStr}写,才可以获得流
*
* @param shStr
* 需要执⾏的shell
* @return
*/
public static List<String> runShell(String shStr) {
List<String> strList = new ArrayList<String>();
try {
Process process = Runtime().exec(new String[]{"/bin/sh","-c",shStr},null,null);
InputStreamReader ir = new InputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
process.waitFor();
while ((line = adLine()) != null){
strList.add(line);
}
} catch (Exception e) {
e.printStackTrace();
}
shell脚本返回执行结果return strList;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论