Ber*_*era 1 java parameters bash arguments escaping
我想在我的java程序中执行一个shell脚本,传递一个参数如下:
Runtime.getRuntime().exec("./test.sh " + "\\\"param1\\\"\\\"param2\\\"\\\"param3\\\"");
Run Code Online (Sandbox Code Playgroud)
test.sh将调用另一个java程序传递字符串参数,如下所示:
another.jar \"param1\"\"param2\"\"param3\"
Run Code Online (Sandbox Code Playgroud)
最后,程序anther.jar将以这种格式解释参数
another.jar "param1""param2""param3"
Run Code Online (Sandbox Code Playgroud)
我有点混淆这种情况,因为在这种情况下,我无法正确处理逃脱字符.kkk
我在第一个命令中尝试了一些字符串格式,但是我没有得到正确的格式.
一些帮助就好了!
谢谢!
使用ProcessBuilder.参数没有什么特别需要做的,它们只是涓涓细流.
//ProcessBuilder pb = new ProcessBuilder("test.sh", "param1", "param2", "param3");
ProcessBuilder pb = new ProcessBuilder("test.sh", "param1 " + "param2 " + "param3");
pb.start();
Run Code Online (Sandbox Code Playgroud)
在test.sh中:
java -jar program2 $1 # Or however you want to call it.
Run Code Online (Sandbox Code Playgroud)
在program2.java中
public static void main(String[] args)
{
System.out.println(args[0]);
}
Run Code Online (Sandbox Code Playgroud)