shopt histreedit 是做什么的?

shopt histreedit 是做什么的?

shopt histreedit应该允许用户重新编辑失败的历史记录替换。

历史替代怎么会失败呢?

与有何histreedit不同histverify

答案1

历史替代怎么会失败呢?

假设您想要重新运行最后一个ls命令,但您将历史替换错误地输入为!lss。假设您没有以 开头的命令lss

  • 通过标准选项,

    $ !lss
    bash: !lss: event not found
    $
    
  • 使用shopt -s histreedit,提示会被重置,因此更容易修复它。

    $ !lss
    bash: !lss: event not found
    $ !lss
    

与有何histreedit不同histverify

histverify不会尝试执行任何包含历史替换的命令;相反,它会将提示设置为可能产生的命令。

$ ls -a
.dotfile file1  file2  file3  ...
$ !ls
.dotfile file1  file2  file3  ...
$ shopt -s histverify
$ !ls
$ ls -a

这本质上是一个确认步骤,可能会派上用场。例如,如果您尝试echo "hi!!",Bash 会替换!!为最后发出的命令(双引号不会禁用历史扩展)并静默执行结果。显然这可能会对其他命令造成损害。使用histverify,您可以中止并修复它,以防历史记录扩展意外发生。

相关内容