Как автоматически установить название терминала для имени каталога без пути

10

В настоящее время мой заголовок / заголовок bash устанавливается на основе каталога, в котором я находится. Например:

[email protected]:~/i/had/some/great/pie/yesterday

Это не очень полезно, если у меня есть несколько вкладок, открытых бок о бок. Например, если у меня есть 4 вкладки вышеприведенного каталога, бок о бок, все, что я вижу, это

[email protected]:~/i/had...

4 раза.

Я бы хотел, чтобы все мои названия терминалов были автоматически установлены только на последнюю часть пути. В приведенном выше примере я хотел бы, чтобы название было

yesterday

Очевидно, заголовок должен измениться при изменении каталогов. Я хотел бы сделать это, не меняя свое приглашение, поэтому приглашение и название терминала должны отличаться.

Есть ли способ сделать это?

    
задан Staring Frog 01.04.2014 в 20:08
источник

2 ответа

9

Почему вы хотите сделать это, не изменяя переменную PS1? Это правильный способ сделать это.

Если вы запустите следующее, вы получите то, что хотите:

export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[3[01;32m\]\[email protected]\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ "

Это просто принимает приглашение по умолчанию:

export PS1="\[\e]0;\[email protected]\h: \w\a\]${debian_chroot:+($debian_chroot)}\[3[01;32m\]\[email protected]\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ "

... и заменив \[email protected]\h: \w на \W .

Вы можете сделать то же самое с любой командой, которая перекликается с правильным кодом возврата:

echo -en "\e]0;${PWD##*/}\a"

... но тогда вы будете постоянно бороться с bash, чтобы остановить его от использования PS1 (лучший способ).     

ответ дан Steven Kath 03.04.2014 в 02:23
источник
2

Да. Подготовьте: \[\e]0;\W\a\] к вашему PS1. Это не изменит внешний вид приглашений, но автоматически установит заголовок вкладки терминалов в базовое имя текущего рабочего каталога.     

ответ дан LikeTheRock 18.01.2017 в 18:47