Obecnie mój tytuł terminala / karty bash jest ustawiony na podstawie katalogu, w którym się znajduję. Na przykład:
bob@bobscomputer:~/i/had/some/great/pie/yesterday
Nie jest to bardzo przydatne, jeśli mam wiele otwartych kart obok siebie. Na przykład, jeśli mam 4 zakładki powyższego katalogu otwarte obok siebie, widzę tylko
bob@bobscomputer:~/i/had...
4 razy.
Chciałbym, aby wszystkie moje końcowe tytuły były ustawione automatycznie na ostatnią część ścieżki. W powyższym przykładzie chciałbym, aby tytuł był
yesterday
Oczywiście tytuł powinien się zmienić, kiedy zmieniam katalogi. Chciałbym to zrobić bez zmiany pytania, więc pytanie i tytuł terminala powinny być inne.
Czy jest na to sposób?
command-line
bash
titlebar
Staring Frog
źródło
źródło
Odpowiedzi:
Dlaczego chcesz to zrobić bez modyfikowania zmiennej PS1? To jest właściwy sposób, aby to zrobić.
Jeśli wykonasz następujące czynności, otrzymasz to, co chcesz:
export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
To jest po prostu domyślny monit:
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\]\$ "
... i zastępowanie
\u@\h: \w
z\W
.Możesz zrobić to samo z dowolnym poleceniem, które powtarza odpowiedni kod ucieczki:
echo -en "\e]0;${PWD##*/}\a"
... ale wtedy nieustannie walczysz z bashem, aby powstrzymać się od robienia tego przy użyciu PS1 (najlepszy sposób).
źródło
Tak. Przygotuj:
\[\e]0;\W\a\]
na PS1. Nie zmieni to wyglądu podpowiedzi, ale automatycznie ustawi tytuł zakładek terminalu na nazwę basenową bieżącego katalogu roboczego.źródło