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();
}
}