我想用当前正在执行的命令更新 tmux 窗格标题,或者如果没有命令,则使用当前 shell 的名称。到目前为止,我在 bashrc 中想到的是:
case ${TERM} in
screen*)
PROMPT_COMMAND='printf "\033]2;bash\033\\"'
set -o functrace
trap 'echo -ne "\033]2;$BASH_COMMAND\033\\"' DEBUG
;;
...
esac
该方法来自这里: http ://www.davidpashley.com/articles/xterm-titles-with-bash.html
这部分有效 - 它完成了所需但会导致其他问题:新 shell 中的第一个提示以
"'"' DEBUG"
以及所有剩余的命令
"
它还可以防止命令行中给出的某些命令失败,例如:
$ ps -h $$
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
因此,虽然上面确实允许在 tmux 窗格标题中显示当前命令,但它不起作用。有没有其他人对此有更好的解决方案,或者关于上述问题的建议?
谢谢。