如何将我的 bash 窗口标题设置为最后运行的命令?

jco*_*lum 7 bash

我希望终端窗口的标题显示最后运行的命令。在 Dev/Test/Prod 等(用于测试 Rails 应用程序)中找到运行 Mongrel 的终端会很方便。

我试过这个代码:

if [ "$SHELL" = '/bin/bash' ]
then
    case $TERM in
         rxvt|*term)
            set -o functrace
            trap 'echo -ne "\e]0;$BASH_COMMAND\007"' DEBUG
            #  export PS1="\e]0;$TERM\007$PS1"
         ;;
    esac
fi
Run Code Online (Sandbox Code Playgroud)

至少,我认为这是我尝试过的代码。它确实有效,但它导致了一些奇怪的行为,例如窗口标题会卡在循环中,直到我在将目录更改为符号链接时按下 Ctrl C。

将窗口标题设置为最后运行的命令的可靠方法是什么?

oHo*_*oHo 2

您还可以使用该xtitle工具:

sudo apt-get install xtitle
lastcmd() { xtitle $(history 1 | cut -c8-); }
PROMPT_COMMAND=lastcmd
Run Code Online (Sandbox Code Playgroud)