import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * 获取脚本工具类 * * @author l_coil * @date 2021-1-13 */ @Slf4j public class ExecuteScriptUtils { public static void main(String[] args) { String a = execute(new String[]{"bash","cd ../"}); System.out.println(a); } /** * 执行脚本 * * @return String */ public static String execute(String instruction) { BufferedReader br = null; StringBuilder builder = new StringBuilder(); try { Process p = Runtime.getRuntime().exec(instruction); br = new BufferedReader(new InputStreamReader(p.getInputStream())); String readLine = br.readLine(); while (readLine != null) { readLine = br.readLine(); builder.append(readLine == null ? "" : readLine); } log.info("readLine" + readLine); p.waitFor(); } catch (IOException | InterruptedException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return builder.toString(); } /** * 执行脚本 * * @return String */ public static String execute(String[] instruction) { BufferedReader br = null; StringBuilder builder = new StringBuilder(); try { ProcessBuilder processBuilder = new ProcessBuilder(instruction); // processBuilder.redirectErrorStream(true); Process p = processBuilder.start(); br = new BufferedReader(new InputStreamReader(p.getInputStream())); String str; while ((str = br.readLine())!=null) { builder.append(str); } p.waitFor(); } catch (IOException | InterruptedException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return builder.toString(); } }