На этот вопрос уже есть ответ:
Я хочу, чтобы имя выполняемой команды, например unzip, было видно через строку заголовка gnome-terminal, но это кажется невозможным, если запущенное приложение не устанавливает заголовок явно, даже если я выбираю «Заменить начальный заголовок» 'в диалоговом окне профиля.
Это более полное решение, на самом деле заботящееся о спам-мусоре с завершением bash.
Чтобы было ясно: я ничего не делал здесь, кроме исследований. Вся заслуга принадлежит Мариусу Гедминасу .
Это прекрасно работает для меня с Gnome-Terminal / Terminator (поместите его в свой .bashrc или куда-нибудь, где вы получаете источник)
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
# Show the currently running command in the terminal title:
# http://www.davidpashley.com/articles/xterm-titles-with-bash.html
show_command_in_title_bar()
{
case "$BASH_COMMAND" in
*\033]0*)
# The command is trying to set the title bar as well;
# this is most likely the execution of $PROMPT_COMMAND.
# In any case nested escapes confuse the terminal, so don't
# output them.
;;
*)
echo -ne "\033]0;${USER}@${HOSTNAME}: ${BASH_COMMAND}\007"
;;
esac
}
trap show_command_in_title_bar DEBUG
;;
*)
;;
esac
Также это кросс-пост , потому что Я только что узнал об этом и хотел поделиться, и я думаю, что это также полезно здесь.
Это было своего рода ответ здесь .
trap 'command' DEBUG
заставляет bash запускать command
перед каждой командой. echo -ne "\033]0;Title\007"
изменяет заголовок на «Заголовок» $BASH_COMMAND
содержит выполняемую команду. Комбинируя их, мы получаем
trap 'echo -ne "\033]0;$BASH_COMMAND\007" > /dev/stderr' DEBUG
Тогда нам просто нужно сбросить заголовок после завершения команды. Я сделал это, установив $PS1
, чтобы изменить заголовок на текущий путь.
tl; dr: Добавьте эти две строки (в этом порядке, в противном случае я получил искаженное приглашение) в конец ~/.bashrc
PS1="\033]0;\w\007${PS1}"
trap 'echo -ne "\033]0;$BASH_COMMAND\007" > /dev/stderr' DEBUG
Редактировать: Ваш $PS1
может уже изменить заголовок , в этом случае требуется только последняя строка.