显示 bash 提示符中当前的“历史记录”行

显示 bash 提示符中当前的“历史记录”行

需要在提示中添加什么格式字符bash来指示最近history运行的项目(或者如果可以在最后一项中添加 1,则指示当前命令编号history)?

我的提示字符串是这样的:

\[\033[33m\][\u@\[\033[1;31m\]\h]\]\033[0m {\W}\n\033[1;34m\]\w\]\033[0m >

给出以下显示:

[user@host] {~}
~ >

用户为黄色,主机为红色。括号内的条目为当前目录,大于号之前的条目为完整的pwd

我可以将当​​前命令号附加到第一行吗?这样我就会得到如下内容:

[user@host] {~} (nnn)
~ >

(nnn)运行时显示的当前(或刚刚处理的)命令号在哪里history

答案1

来自提示部分bash 手册页:

\!     the history number of this command
\#     the command number of this command

并进一步如下:

命令编号和历史编号通常是不同的:命令的历史编号是它在历史列表中的位置,可能包括从历史文件中恢复的命令……,而命令编号是在当前 shell 会话期间执行的命令序列中的位置。

如果您想要最后一个命令编号,您可以将该数字包装在算术评估中,如下所示:

export PS1='last cmd num: $((\# -1)), this num: \# '

相关内容