使用变量使用java执行终端命令

时间:2014-06-16 14:10:22

标签: java shell terminal raspberry-pi

这似乎是一个初学者的问题,但我为我的raspberry pi编写了一些代码,并希望用java执行终端命令。到现在为止还挺好。我终于明白了,让它运转起来。但我也希望我的java函数为函数本身提供参数。但我无法弄清楚如何告诉java如何在字符串中使用变量。所以继承我的代码:

public static void rcswitch(int code,int unitcode, int onoff) throws InterruptedException, IOException {
    String command = "/bin/bash -c 'sudo /home/pi/rcswitch-pi/send code unitcode onoff'";

    Process proc = Runtime.getRuntime().exec(command);

    BufferedReader reader = 
         new BufferedReader(new InputStreamReader(proc.getInputStream()));
       String line = "";
       while((line = reader.readLine()) != null) {
            System.out.print(line + "\n");
       }
        proc.waitFor();
}

它可能不是最好的选择,但它可以帮助我。我正在给bash shell以下'发送'命令,但现在我也想使用给定的参数。无论我如何写下它似乎都没有工作:(代码单元代码和onoff变量应该在发送之后添加,每个之前有一个空格。

感谢您的回答:)

1 个答案:

答案 0 :(得分:0)

您可以使用String.format()来构造如下命令:

String command = String.format("/bin/bash -c 'sudo /home/pi/rcswitch-pi/send %d %d %d'", code, unitcode, onoff);

希望这就是你要找的东西。