Як автоматично встановити назву термінала на ім'я каталогу без шляху


11

Наразі мій баш-термінал / назва вкладки встановлюється на основі каталогу, в якому я перебуваю. Наприклад:

bob@bobscomputer:~/i/had/some/great/pie/yesterday

Це не дуже корисно, якщо у мене відкрито кілька вкладок поруч. Наприклад, якщо в мене відкриті 4 вкладки вищезгаданого редактора, все, що я бачу, - це

bob@bobscomputer:~/i/had...

4 рази.

Я хотів би, щоб усі мої термінали були автоматично встановлені лише на останню частину шляху. У наведеному вище прикладі я хотів би, щоб ця назва була

yesterday

Очевидно, що заголовок повинен змінюватися, коли я змінюю каталоги. Я хотів би зробити це, не змінюючи своє підказку, тому підказка та назва терміналу мають бути різними.

Чи є спосіб це зробити?


Відповіді:


11

Чому ви хочете це зробити, не змінюючи змінну 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.

Ви можете зробити те ж саме з будь-якою командою, що повторює правильний код евакуації:

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

... але тоді ви будете постійно битися з башем, щоб не допустити цього за допомогою PS1 (найкращий спосіб).


2
Дякую - я не зрозумів, що PS1 встановлює заголовок і підказує самостійно. У своєму .bashrc, у випадку "$ TERM" у xterm * | rxvt *), я встановлюю PS1 = "[\ e] 0; $ {debian_chroot: + ($ debian_chroot)} \ W \ a] $ PS1", і він робить саме те, що я хотів.
Погляд жаби

Це питання добре пояснює, що означає все, що означає PS1 gobbledygook
congusbongus

3

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.