最近,我注意到我包含很多“!”的回声。导致奇怪的东西。例如:echo !!
给我:
echo rm -r * 1000
rm -r * 1000
(rm -r *
是我在输入之前执行的最后一个命令)。为什么会发生这种情况,有没有办法禁用它?
最近,我注意到我包含很多“!”的回声。导致奇怪的东西。例如:echo !!
给我:
echo rm -r * 1000
rm -r * 1000
(rm -r *
是我在输入之前执行的最后一个命令)。为什么会发生这种情况,有没有办法禁用它?
您遇到了
shell expansion
- shell 将解析您的命令并用其他信息替换特殊的通配符。尝试echo '!!'
(单引号)以了解 shell 扩展和引用可以做什么。您可以
man
在bash
. 请注意讨论历史扩展的部分,讨论event designators
类似!!
的和扩展的部分,讨论其他形式的外壳扩展。引用部分解释了 bash 引用机制的行为以及单引号和双引号字符串的评估方式之间的区别。