Мне бы хотелось, чтобы в заголовке окна моего терминала отображалась последняя команда, которая была выполнена. Было бы удобно найти терминал, на котором запущен Mongrel, в Dev / Test / Prod и т. Д. (Для тестирования приложений rails).
Я попробовал этот код:
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
По крайней мере, я думаю, что это код, который я пробовал. Это сработало, но вызвало какое-то странное поведение, например, заголовки окон, которые застревали в цикле, пока я не нажал Ctrl C при смене каталога на символическую ссылку.
Какой надежный способ установить заголовок моего окна для последней команды, которая была выполнена?
Вы также можете использовать инструмент xtitle
:
sudo apt-get install xtitle
lastcmd() { xtitle $(history 1 | cut -c8-); }
PROMPT_COMMAND=lastcmd
Только Используя стандартные команды
lastcmd() { LASTCMD=$(history 1 | cut -c8-); echo -ne "\e]2;$LASTCMD\a\e]1;$LASTCMD\a"; }
PROMPT_COMMAND=lastcmd
Протестируйте его
echo 'This echo command should be displayed on my window title'
Метка времени
Чтобы также отобразить время последней команды установите переменную среды HISTTIMEFORMAT
:
HISTTIMEFORMAT=%c
Посмотрите man date
для полного списка даты/форматов времени.
Отключить префикс метки времени на заголовке окна:
unset HISTTIMEFORMAT
Персистентность
Хорошее место для помещения этих двух строк находится в Вашем ~/.bashrc