为什么我不能在bash';回声,即使它逃逸了也没有?
我的问题很简单:为什么我不能在bash';回声,即使它逃逸了也没有?,bash,Bash,我的问题很简单: $ echo "Hello!" sh: !": event not found 什么是在这种情况下?然后我尝试了echo“Match\!”,但结果是Match\。如何编写语句?您可以使用单引号: echo 'Hello!' Hello! 否则,在双引号中,shell将尝试展开从历史记录中删除事件。您可以使用set+H关闭历史记录扩展,然后使用set-H重新启用它。现在您的速度更快了:)@fedorqui:罕见的情况之一:)谢谢,我不知道单引号和双引号对扩展的影响。@Tobi
$ echo "Hello!"
sh: !": event not found
什么是
代码>在这种情况下?然后我尝试了echo“Match\!”
,但结果是Match\代码>。如何编写语句?您可以使用单引号:
echo 'Hello!'
Hello!
否则,在双引号中,shell将尝试展开
从历史记录中删除事件。您可以使用set+H
关闭历史记录扩展,然后使用set-H
重新启用它。现在您的速度更快了:)@fedorqui:罕见的情况之一:)谢谢,我不知道单引号和双引号对扩展的影响。@Tobias:在shell编程中,了解单引号和双引号的区别非常重要。因为unix shell不在单引号中展开变量。是的,我明白了echo$foo
是echo“$foo”
,但它不等于echo'$foo'
。最后一个打印字符串$foo
bash
从C shell导入了一个应该留在C shell中的功能,而sea shell应该留在海边,远离最近的计算机。请参阅bash
手册页的引用
部分。它描述了单引号和双引号对shell元字符的影响,包括代码>启用历史扩展时。