我正在 Linux 服务器上工作,最近我注意到一个奇怪的行为:当我输入 !!然后点击空格,它会自动转换为空格。有谁知道为什么会这样以及如何禁用此行为?
非常感谢您的任何建议。
我尝试使用不同的 shell(例如 bash、tcsh),但问题仍然存在。
历史扩展是 GNU BASH 等 shell 中的一项功能,允许您重用命令历史记录中的命令。
虽然这很有用,但在某些情况下可能会导致意外行为。
要禁用 BASH 中的历史记录扩展,可以使用
set +H
选项。这可以防止 shell 解释特殊字符(如 !
)以进行历史扩展。
set +H
但是,如果您只想打印包含
!
的文本,使用单引号或使用反斜杠转义字符会更容易。例如,'!!'
或\!\!
将打印!!
,而不触发历史记录扩展。
有关更多详细信息,您可以参考 GNU BASH 手册中历史交互部分这里。