如何在带有包含空格的参数的java shell参数中传递引号“”

时间:2015-07-30 10:09:35

标签: java bash shell csv whitespace

我目前正在尝试执行以下命令

./launch.sh -version 212 -file "/root/Desktop/local test/list.csv"

launch.sh将参数分配给变量MY_VARIABLE

分配值后,文件路径周围的引号将被删除,echo $MY_VARIABLE会得到以下结果:

./launch.sh -version 212 -file /root/Desktop/local test/list.csv

现在launch.sh调用Java并将MY_VARIABLE作为参数

但Java会拆分该文件的参数并尝试处理/root/Desktop/local,并在应该使用/root/Desktop/local test/list.csv时结束错误。

如何在忽略Java参数中的空格或保留引号的同时将值赋给变量以确保给出正确的参数。

3 个答案:

答案 0 :(得分:0)

您可以尝试添加两个转义引号(\“),如下所示:

"\"/root/Desktop/local test/list.csv\""

答案 1 :(得分:0)

有很多方法可以实现这一点。像Steafan所说的那样添加转义序列。或者你可以将这些字符串存储到一个文本文件中并将这些值从文件中读取为字符串

答案 2 :(得分:0)

  

如何忽略Java参数中的空格

  public class Arguments {
      public static void main(String[] args){ 

            String together = "";
            for(int i=0; i < args.length; i++){
                System.out.println( args[i] );
                together = together.concat(args[i]);
            }
            System.out.println(together);

            for(int i=0; i < args.length; i++){
                System.out.println( args[i] );
            }
        }  
}

修改该代码可以连接任意数量的参数。之后,您可以将together用作单个变量