带有多个字符串参数的Bash脚本

时间:2012-04-04 03:40:32

标签: java string bash

我在将两个字符串变量分隔为bash脚本的参数时遇到问题。我的bash脚本有两个参数:

#!/bin/bash


DATA1=$1
DATA2=$2

但是,DATA1和DATA2不是我想要的,因为bash错误地读取了我的字符串。 DATA2只是我想要放入的参数的第一部分,因为我在将一个复杂的(相对)字符串变成一个单独的arguemnt时遇到了麻烦。

我从Java应用程序调用此脚本,其变量如下:

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


myscript.sh  m1 m2

只有m2的第一部分传递给bash脚本中的DATA1。我试过用单引号和双引号来包装整个东西我不能让它接受整个m2作为第二个参数。

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

1 个答案:

答案 0 :(得分: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命令,String [] envp,File dir)由StringTokenizer解析命令。因此,文字"some data""\"some data\""会分为some data(或"some data "