В настоящее время заголовок моего терминала / вкладки bash устанавливается на основе каталога, в котором я нахожусь. Например:
bob@bobscomputer:~/i/had/some/great/pie/yesterday
Это не очень полезно, если у меня открыто несколько вкладок рядом. Например, если у меня есть 4 вкладки из вышеупомянутого каталога, открытые рядом, все, что я вижу, это
bob@bobscomputer:~/i/had...
4 раза.
Я бы хотел, чтобы все заголовки моего терминала автоматически устанавливались только на последнюю часть пути. В приведенном выше примере я бы хотел, чтобы заголовок был
yesterday
Очевидно, что заголовок должен меняться, когда я меняю каталоги. Я хотел бы сделать это без изменения моего приглашения, поэтому приглашение и заголовок терминала должны отличаться.
Есть ли способ сделать это?
command-line
bash
titlebar
Вялая лягушка
источник
источник
Ответы:
Почему вы хотите сделать это без изменения переменной PS1? Это правильный способ сделать это.
Если вы выполните следующее, вы получите то, что вы хотите:
export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
Это просто принимает приглашение по умолчанию:
export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
... и заменить
\u@\h: \w
на\W
.Вы можете сделать то же самое с любой командой, которая отображает правильный escape-код:
echo -en "\e]0;${PWD##*/}\a"
... но тогда вы будете постоянно сражаться с bash, чтобы помешать ему использовать PS1 (лучший способ).
источник
Да. Prepend:
\[\e]0;\W\a\]
к вашей PS1. Это не изменит внешний вид ваших запросов, но автоматически установит в заголовке вкладок вашего терминала базовое имя текущего рабочего каталога.источник