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

如何在tmux状态栏窗口指示器中添加最近命令的退出码标识

在tmux状态栏显示窗口活跃分栏的命令退出状态

解决方法

要实现这个需求,你可以通过自定义tmux状态栏格式,结合shell脚本检测每个窗口活跃分栏的最近命令退出码,把异常状态标识附加到窗口名称后面。

1. 编写检测退出码的脚本

创建脚本文件~/.tmux/check_exit.sh,内容如下:

#!/bin/bash
# 获取目标窗口的活跃分栏ID
active_pane=$(tmux display-message -p -t "$1" "#{pane_active} #{pane_id}" | awk '$1 == 1 {print $2}')
# 获取该分栏最近命令的退出码
last_exit=$(tmux display-message -p -t "$active_pane" "#{pane_last_command_exit_status}")
# 非0退出输出感叹号,否则输出空
[ "$last_exit" -ne 0 ] && echo "❗️" || echo ""

给脚本添加执行权限:

chmod +x ~/.tmux/check_exit.sh

2. 修改tmux配置

打开~/.tmux.conf,添加或修改窗口状态栏格式设置:

# 普通窗口的状态栏显示格式
set -g window-status-format "#I:#W#(~/.tmux/check_exit.sh #I)#{?window_flags,#window_flags, }"
# 当前窗口的状态栏显示格式
set -g window-status-current-format "#I:#W#(~/.tmux/check_exit.sh #I)#{?window_flags,#window_flags, }"

其中#I是窗口索引,#W是窗口名称,脚本会根据窗口索引定位到对应窗口的活跃分栏,判断退出码后返回状态标识。

3. 使配置生效

在tmux会话中执行命令重新加载配置:

tmux source ~/.tmux.conf

说明

  • 仅检测每个窗口的活跃分栏——即该窗口最后一次被切换时处于活跃状态的分栏
  • 当活跃分栏的最近命令非0退出时,窗口名称后会显示❗️,逻辑和分栏缩放时的Z标识一致
  • 边缘场景(如分栏未执行过命令、后台进程退出)可能无法检测,符合忽略特殊场景的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:31:06