这是一个名为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 @%&^%
@%&^%