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
,您可以中止并修复它,以防历史记录扩展意外发生。