java代碼中嵌入shell語句


/**
 * 執行shell語句
 *
 * @param shell
 * @return
 */
public static String execShell(String shell, boolean log) throws Exception {
    InputStream inputStream = null;
    BufferedReader br = null;
    InputStreamReader inputStreamReader = null;
    if (log) {
        logger.info("shell is : {}", shell);//記錄shell操作
    }
    try {
        Process ps = Runtime.getRuntime().exec(new String[]{"sh","-c",shell});//執行
        inputStream = ps.getInputStream();
        inputStreamReader = new InputStreamReader(inputStream);
        br = new BufferedReader(inputStreamReader);
        return readStream(br, log);
    } catch (Exception e) {
        throw new Exception(e);
    } finally {
        close(inputStream);
        close(inputStreamReader);
        close(br);
    }
}

 

/**
 * 解析流
 *
 * @param bufferedReader 流對象
 * @param log            是否打印流內容
 * @return
 * @throws IOException
 */
private static String readStream(BufferedReader bufferedReader, boolean log) throws IOException {
    StringBuffer sb = new StringBuffer();
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        sb.append(line).append("\n");
        if (log) {
            logger.info(line);
        }
    }
    return sb.toString().trim();
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章