用不同的终端执行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执行
- 用windows的控制台执行
从结果中看,git bash把--dw-hive-auth=''
等号后面单引号吞了(经测试,在mac终端上执行也会吞掉''
)。
推断是终端执行逻辑有差异,请问是否有相关资料解释这种现象?
单引号在bash里属于特殊符号,在windows的命令提示符中却不是。
在bash中你可以试试用反斜线转义一下,xxx=''
或者用双引号包裹起来,双引号里的大部分(不是全部)字符都会被当成普通字符对待
xxx="''" (双引号里面两个单引号)