繁体   English   中英

如何将shell参数中的引号“”传递给Java,且参数中包含空格

[英]How to Pass Quotes “” in a shell argument to java with argument containing white spaces

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

./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参数中的空格或保留引号。

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

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

您可以通过多种方式实现此目的。 如Steafan所说,添加转义序列。或者您可以将此字符串存储到文本文件中,并将这些值从文件中读取为字符串

如何忽略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使用单个变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM