2014-10-18 48 views
0

我该如何解决这个bash终端?为什么要'!'突然出现问题,并且需要引号似乎不再需要生成字符串了。我是否有什么突破?如果是这样,我该如何重置为出厂设置?我确定它昨天正常工作-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,这是奇怪的。

+0

这也是BashPitfalls#23:http://mywiki.wooledge.org/BashPitfalls#echo_.22Hello_World.21.22 – 2014-10-18 19:55:09

+2

在Bash命令中如何解决错误“bash:!d:event not found”的可能重复替代](http://stackoverflow.com/questions/25003162/how-to-address-error-bash-d-event-not-found-in-bash-command-substitution) – tripleee 2014-10-18 20:16:42

回答

8

运行

set +H 

将关闭其全部违规(历史扩展)功能。在你的~/.bashrc把这是一种常见的做法。

或者,你可以修改histchars变量改变用来触发历史扩展字符(默认情况下,!),快速替换(默认情况下,^)和评论(默认情况下,#)。

作为另一种选择,使用单引号而不是双引号避免触发有问题的shell功能。

+0

如果有时想通过呢? – user2864740 2014-10-18 19:52:27

+2

@ user2864740,...然后学会正确使用readline,并且不再需要它。 :) – 2014-10-18 19:55:37