接口
@ResponseBody
@GetMapping("/testCopyShellFilePermission")
public String testCopyShellFilePermission() {
//复制
return execDos("./hello.sh", null, "/data/shell");
}
实现
/**
* 指定运行目录执行语句
*
* @param dos 要执行的命令
* @param env 设置环境变量,值是:环境变量名=环境变量值,例如 JAVA_HOEM=/usr/lib/java1.8
* @param bashDir 执行语句的目录
* @return
*/
public static String execDos(String dos, String[] env, String bashDir) {
try {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(dos, env, new File(bashDir));
process.waitFor();
InputStream in = process.getErrorStream();
return IOUtils.toString(in, StandardCharsets.UTF_8);
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
return null;
}
/data/shell下的脚本
彩色输出hello world
将/data/app-0.0.1-SNAPSHOT.jar文件复制到/data/shell目录下,可以自己修改
#!/bin/bash
echo -e "\e[;32m Hello World! \e[0m"
cp /data/app-0.0.1-SNAPSHOT.jar ./
访问接口后代码不报错并且文件被成功复制到/data/shell目录下