java调用shell脚本且传递参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java调用shell脚本且传递参数相关的知识,希望对你有一定的参考价值。

在最近的工作中,需要用到Java要调用shell脚本的情况。总结如下:


    @RequestMapping("/changePermission")

public String changePermission(){

String returnCode = "";

try {

Process process = Runtime.getRuntime().exec("chmod 755 /tmp/upgrade.sh");

process.waitFor();

                // test2.sh是要执行的shell文件,param1参数值,test2.sh和param1之间要有空格

                // 多个参数可以在param1后面继续增加,但不要忘记空格!!

process = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c","/tmp/test2.sh param1"});

BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

String line = null;

StringBuffer sb = new StringBuffer("");

while((line=br.readLine()) != null){

sb.append(line);

}

br.close();

System.out.println(sb.toString());

returnCode = process.waitFor()+"";

} catch (IOException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

return returnCode;

}

shell脚本test2.sh代码如下:

#!/bin/bash

name=$1

echo $name

mv /usr/local/upgrade.sh /usr/local/${name}.sh


以上是关于java调用shell脚本且传递参数的主要内容,如果未能解决你的问题,请参考以下文章

如何调用 shell 脚本并从另一个 shell 脚本传递参数

shell调用python脚本,并且向python脚本传递参数

从 shell 调用 python 脚本,但将配置文件的位置作为参数传递

Linux Shell 参数传递多种方式

shell入门练习

往shell脚本中传入参数