【问题标题】:-bash: !": event not found when trying to run Java program [duplicate]-bash:!”:尝试运行Java程序时找不到事件[重复]
【发布时间】:2014-05-11 03:58:08
【问题描述】:
[Running Java 1.7.0_51 on MacOSX]

你好,

这让我很沮丧,因为我刚刚成功完成了本应在 Java 中完成的工作。但是,当我运行代码时,我遇到了一些错误,例如,
如果我编译它并使用:java MyCode "Hello World!"

我收到错误:-bash: !": event not found

但是,如果我使用像“Hello World!”这样的单引号,程序运行没有任何问题,或者如果仍然使用双引号,感叹号不在末尾。

我知道这可能不是直接的编码问题,但我不太确定,所以我希望在运行类似的东西时可能遇到问题的人知道这一点。

谢谢!

【问题讨论】:

  • 问题是什么?
  • @fge - 猜错了。他遇到的是 bash shell 的历史扩展功能……在 bash shell 提示符下运行java 时。这根本不是java问题。他会通过运行echo "Hello World!" 得到相同的错误消息...
  • 您可以使用set +H关闭历史扩展,使用set -H重新启用它

标签: java bash terminal


【解决方案1】:

从 BASH 运行代码的正确方法确实是使用单引号:

java MyCode 'Hello World!'

在双引号中,shell 扩展引用的字符串并尝试从 ! 标记之后的历史记录中查找事件。

【讨论】:

  • 好的。这只是一个评估的工作,所以我担心如果这是一个问题,我会得到零。我想他们已经知道了?谢谢!
  • @zahz - 如果他们不这样做,那么每个人都会得到零。你觉得这很可能吗?
  • 对不起我的新手哈哈。我真的不知道这一点。谢谢大家,将标记为最佳答案。
  • @zahz 别担心;这是bash 工作方式的结果,与您的代码无关。例如,java MyCode "Hello World!"dash shell 中按预期工作,因为该 shell 没有历史扩展。
猜你喜欢
  • 2019-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
相关资源
最近更新 更多