下面的Java代码打印两个参数,当我通过!clearinput如下所示。
class Test{ public static voID main(final String… arguments){ for(String argument : arguments){ System.out.println(argument); } } }
输出:
$ java Test !clear java Test clear clear
UPDATE
使用任何的linux命令clear地方产生相同的结果。
getenv(“cc”)返回NulL,为什么?
在Jenkins用户下的windows Git中指定SSH证书/密钥
如何启动一个没有任何用户configuration的shell?
在bash脚本中执行命令,直到输出超过一定值
search并replacelinux目录的所有文件中的文本
$ java Test !pwd java Test pwd pwd $ java Test !ls java Test ls ls
我知道这与历史扩张有关,我可以逃避! 性格来解决这个问题。
然而,我很好奇知道这个代码打印上面两行作为输出的确切原因。 有人可以解释吗?
回答terminal查询并自动login到ssh
svn工作副本快速recursiongrepPing
Cron和Crontab之间的区别?
编写脚本以使用预定义的密码创build多个用户
如何检查与bash脚本中的目录中是否存在匹配正则Expression式的文件?
你正在一个Unix / linux的shell中工作,可能是bash 。 那! 字符是Unix shell中的一个特殊字符,因此你的命令被认为是一个历史扩展。
在历史扩展中,通常发生的事情是shell向您显示命令扩展到的内容。 如果您的历史记录clear了命令,那么 !clear的扩展就会很clear ,因此扩展的命令将会被java Test clear 。 然后shell 运行命令。 Java运行,只看到一个参数 – clear ,这就是它打印。
如果相反,你运行
java Test \’!clear\’
(用单引号!)
爪哇将得到的论据!clear ,没有历史扩张。
如果你使用了一个不在shell命令历史记录中的单词,你会得到一个“event not found error”。 如果你使用一个单词,在你的shell历史中,启动一个带有参数的命令,整个命令及其所有参数将被替换。 这是bash一部分而不是Java。
总结
以上是内存溢出为你收集整理的为什么这个Java代码打印两个参数?全部内容,希望文章能够帮你解决为什么这个Java代码打印两个参数?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容