2

我在分隔两个字符串变量作为 bash 脚本的参数时遇到问题。我的 bash 脚本接受两个参数,如下所示:

#!/bin/bash


DATA1=$1
DATA2=$2

但是,DATA1 和 DATA2 不是我想要的,因为 bash 错误地读取了我的字符串。DATA2 只是我想提出的论点的第一部分,因为我无法将复杂(相对)的字符串变成单个争论。

我从一个 Java 应用程序调用这个脚本,变量如下:

String m1 = "some data";
String m2 = "some more"+mystring+"even more data"+anotherstring;


myscript.sh  m1 m2

只有 m2 的第一部分被传递给 bash 脚本中的 DATA1。我尝试将整个内容用单引号和双引号括起来,但我无法让它接受整个 m2 作为第二个参数。

对创建两个字符串参数的任何帮助表示赞赏。

4

1 回答 1

0

它对我有用,请参阅:

Runtime.getRuntime().exec(new String[]{"/bin/sh", "/tmp/myscript.sh", m1,m2});

您的代码调用:Runtime.getRuntime().exec(String)

它调用方法exec(command,null,null)(参见 src.zip 中的源代码)exec(String command, String[] envp, File dir)

方法 exec(String command, String[] envp, File dir) 由 StringTokenizer 解析命令。所以文本"some data"or"\"some data\""被拆分为some data(or "some data ")

于 2012-04-04T06:55:56.120 回答