-bash: !": 事件未找到

16

我该如何修复这个Bash终端?为什么'!'突然成了一个问题,而加上引号似乎不再需要来生成字符串。我是不是弄坏了什么东西?如果是的话,我该如何将其重置到出厂设置?我确定它昨天还能正常工作

Last login: Sat Oct 18 15:30:48 on ttys001
Michels-MacBook-Pro:~ michelfrechette$ echo "hello, world!"
-bash: !": event not found
Michels-MacBook-Pro:~ michelfrechette$ echo hello, world
hello, world
Michels-MacBook-Pro:~ michelfrechette$ echo "hello, world"
hello, world 

-bash: !": event not found,这很奇怪。


这也是BashPitfalls#23:http://mywiki.wooledge.org/BashPitfalls#echo_.22Hello_World.21.22 - Charles Duffy
3
可能是重复的问题,如何解决 Bash 命令替换中的错误 "bash: !d': event not found"?原链接为:https://dev59.com/pIHba4cB1Zd3GeqPYPQC - tripleee
1个回答

52

跑步

set +H

完全关闭这个有问题的(历史扩展)功能。在您的〜/ .bashrc中放置它是一种常见做法。

或者,您可以修改histchars变量以更改用于触发历史扩展的字符(默认情况下为),快速替换(默认情况下为^)和注释(默认情况下为#)。

作为另一种选择,使用单引号而不是双引号可以避免触发相关的shell特性。


如果有时候需要呢? - user2864740
2
@user2864740,学会正确使用readline,你就不再需要它了。 :) - Charles Duffy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接