ksh 中的历史命令无法使用

ksh 中的历史命令无法使用

我正在使用 ksh shell。我没有受到以下命令的任何影响。它正在执行,没有任何错误,但没有给出正确的结果。

export HISTTIMEFORMAT='%F %T '

使用Up箭头查看上一条命令,然后按 Enter 执行它。

从命令行键入!!并按Enter

从命令行键入!-1并按Enter

Control+P将显示上一条命令,按Enter执行它。

基本上,除了基本的历史命令之外,我不会做任何事情。

答案1

您在这里找到这些命令了吗:如何查找最后一个命令的结果?您是否意识到这不是正确答案?你知道它在谈论bashksh

回答你提出的问题:

ksh你有哪个版本?您可以通过按Ctrl+VEscCtrl+V或运行来查找echo $KSH_VERSION

为什么您认为这些行动会有效? !!!-1是为bash, zsh, 和csh, 不是为ksh

要让Ctrl+P执行任何操作,请确保您正在emacs通过运行来使用编辑模式set -o emacs

为了使向上箭头键起作用,有几个谷歌结果。试试这个使箭头键和删除键在 Korn Shell 中起作用,它说明了如何使用该alias命令来执行此操作。

答案2

基本上,这取决于特定的ksh实现。例如pdksh,历史记录默认启用,并且不存储在文件中。对于某些 UNIXksh实现,需要HISTFILE将其设置为启用历史记录。您可以尝试设置它,或者检查您的特定ksh实施手册。

此外,根据实现的不同,您将无法使用向上箭头和其他奇特的方式来访问先前的命令。有时,您只有emacsvi模式,并且能够使用相应编辑器的命令滚动浏览历史记录。

只是补充一下,HISTTIMEFORMAT看起来更像是一个bash扩展……

相关内容