You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中通过Oh-My-Posh显示当前命令历史编号

在Oh-My-Posh中显示当前历史编号

Oh-My-Posh没有直接对应Bash \! 的内置变量,但可以通过调用shell原生命令获取历史编号,再嵌入到提示符模板中。

针对Bash环境

在Bash里,当前历史编号可以通过读取HISTCMD变量(注意:HISTCMD表示下一条要执行的命令的历史编号,需减1),或者解析history命令输出来获取。你可以在Oh-My-Posh配置模板中用{{ exec "<命令>" }}语法嵌入:

  • 方法1:使用HISTCMD变量
{{ exec "echo $((HISTCMD - 1))" }}
  • 方法2:解析history命令输出
{{ exec "history 1 | awk '{print $1}'" }}

将该片段加入你的提示符模板即可,示例配置片段:

{
  "type": "text",
  "style": "plain",
  "foreground": "#ffffff",
  "background": "#333333",
  "template": "{{ exec \"echo $((HISTCMD - 1))\" }} > "
}

针对Zsh环境

Zsh中HISTCMD直接对应当前命令的历史编号,无需调整,直接调用即可:

{{ exec "echo $HISTCMD" }}

注意事项

  • 确保Oh-My-Posh默认允许执行外部命令(默认开启)。
  • 不同shell的历史机制有差异,需根据你使用的shell调整对应命令。

内容的提问来源于stack exchange,提问作者Richard Povinelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:39:52