用不同的终端执行jar程序,main接收到的args内容会不一致

用不同的终端执行jar程序,main接收到的args内容会不一致

代码很简单,就是依次打印args内容

public class Main {

    public static void main(String[] args) {
        for (String arg : args) {
            System.out.println(arg);
        }
        System.out.println();
        // write your code here
    }
}

编译打包成jar文件,在不同的控制台终端执行同样的命令java -jar testcmd.jar --dw-hive-auth='',注意这里=号后面是带两个单引号的。

  • 用git bash执行

clipboard.png

  • 用windows的控制台执行

clipboard.png

从结果中看,git bash把--dw-hive-auth=''等号后面单引号吞了(经测试,在mac终端上执行也会吞掉'')。
推断是终端执行逻辑有差异,请问是否有相关资料解释这种现象?

阅读 1.8k
2 个回答

单引号在bash里属于特殊符号,在windows的命令提示符中却不是。

在bash中你可以试试用反斜线转义一下,xxx=''
或者用双引号包裹起来,双引号里的大部分(不是全部)字符都会被当成普通字符对待
xxx="''" (双引号里面两个单引号)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题