如何将参数传递给shell脚本以用作变量filename的一部分

时间:2015-11-17 16:58:51

标签: java bash shell

我正在尝试以编程方式从我的java程序中调用一个shell脚本,该脚本依次根据发送的参数执行命令。

要在connectvpn.sh shell脚本中执行的命令是:

      <service id="test" class="MyClass"> 
        <argument type="expression">service(parameter('my.vendor'))</argument>
    </service>

echo myrootpassword | sudo -S /usr/local/Cellar/openvpn/2.3.8/sbin/openvpn --config /usr/local/etc/openvpn/1.opvn
从长列表

等等,其中我希望变量的文件名号可以根据接收到的参数的值而变化

所以我希望我的java程序能够始终使用相同的shell脚本,但根据发送的参数使用不同的.ovpn文件。

我相信在我的java程序中我必须称之为:

echo myrootpassword | sudo -S /usr/local/Cellar/openvpn/2.3.8/sbin/openvpn --config /usr/local/etc/openvpn/2.opvn

shell脚本中的内容是什么,以便调用的文件名是可变的,对于显示的示例,它使用1,但有时它使用作为参数发送的任何数字?

非常感谢!

1 个答案:

答案 0 :(得分:0)

在shell脚本中,使用$1表示传递给它的第一个参数。

修复你的java,如下所示

ProcessBuilder pb = new ProcessBuilder("./connectvpn.sh", String.valueOf(server_number));