Java 命令行参数:简单打印不适用于"@%&^%"(不带引号)。请解释一下



这是一个名为Test的Java类:

public class Test
{
public static void main(String[] args)
{
System.out.print(args[0]);
}
}

当我编译并运行它时,使用参数&;Bob"不带引号,如:java Test.java Bob,它运行良好,并打印&;嗨,鲍勃。你好吗?在终端上,一切顺利:

xyz@my-iMac src % java Test.java Bob    
Bob

现在,当我使用参数"@%&^%",不带引号,像:java Test.java @%&^%,我在我的终端上得到这个:

xyz@my-iMac src % java Test.java @%&^%
[1] 12097
zsh: command not found: ^%
xyz@my-iMac src % @%
[1]  + done       java Test.java @%
xyz@my-iMac src % 

我正在使用MacOS Terminal zsh编译和运行java。Macos上的用户名是xyz, iMac名称为my-iMac。Test.java文件在src.

目录下。我猜是终端在做有趣的事情。但我不知道是什么,或者我可能错了。

谁能解释一下这是怎么回事?

字符&表示"在背景中运行";在大多数shell中。

然后zsh尝试执行下一个是^%,这确实是一个不存在的命令。

如果你加上引号(就像你已经尝试过的那样)或者用保护&,那么它就会起作用

java Test.java @%&^%
@%&^%                  

相关内容

最新更新