Я працював над власним рішенням з різних постів навколо. Це створює заголовок, що містить користувача, ім'я хоста, pwd, tty та виконану в даний час команду (для bash).
Це виглядає приблизно так (жодна команда не виконується):
.:[user@hostname:/home/user][pts/10]:.
І ось так (виконання команди):
.:[user@hostname:/home/user][pts/10] {tail -F /var/log/syslog}:.
Десь у .bashrc я розширив PS1:
# set the terminals title. This is the "post-command" part,
# need to use a trap for pre-command (to add the command line to the title)
PS1+="\[\033]2;.:[\u@\h:\$PWD] [$(tty | cut -b 6-)]:.\007\]"
Додає поточну команду, використовуючи історію 1 та пастку :
# set a fancy title (this is pre-command, in PS1 is after-command (to reset command)
trap 'echo -ne "\033]2;.:[${USER}@${HOSTNAME}:${PWD}] [$(tty | cut -b 6-)] {$(history 1 | sed "s/^[ ]*[0-9]*[ ]*//g")}:.\007"' DEBUG
Не соромтеся прийняти до своїх потреб.
.bashrc
після кожної команди у своїй оболонці, я отримую цей вихід0;%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}
. Я припускаю, що я можу придушити цей вихід, призначивши команду trapPS1
? ОднакPS1=trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG
не працює. Це призводить до помилкиbash: echo -ne "\033]0;$BASH_COMMAND\007": command not found
.