【发布时间】:2012-04-17 18:38:18
【问题描述】:
我在分隔两个字符串变量作为 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 作为第二个参数。
感谢任何有关创建两个字符串参数的帮助。
【问题讨论】:
-
我认为问题更可能出在 Java 端而不是 Bash 端。你是如何启动脚本的?
-
您将不得不显示用于从 Java 调用脚本的确切代码(
Runtime.exec()?、ProcessBuilder?),包括设置参数的代码。否则我们只是猜测。 -
m2 的第一部分被传递给 DATA1?你的意思是 m2 的第一部分被传递给 DATA2?