Actuellement, le titre de mon terminal / tab bash est défini en fonction du répertoire dans lequel je me trouve. Par exemple:
bob@bobscomputer:~/i/had/some/great/pie/yesterday
Ce n'est pas très utile si j'ai plusieurs onglets ouverts côte à côte. Par exemple, si j'ai 4 onglets du répertoire ci-dessus ouverts côte à côte, tout ce que je vois est
bob@bobscomputer:~/i/had...
4 fois.
J'aimerais que tous mes titres de terminal soient automatiquement définis sur la dernière partie du chemin d'accès. Dans l'exemple ci-dessus, j'aimerais que le titre soit
yesterday
Évidemment, le titre devrait changer quand je change de répertoire. Je voudrais faire cela sans changer mon invite, donc l'invite et le titre du terminal devraient être différents.
Y a-t-il un moyen de faire cela?
command-line
bash
titlebar
Grenouille qui regarde
la source
la source
Réponses:
Pourquoi voulez-vous le faire sans modifier votre variable PS1? C'est la bonne façon de procéder.
Si vous exécutez ce qui suit, vous obtiendrez ce que vous voulez:
export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
Cela prend simplement l'invite par défaut:
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\]\$ "
... et en remplaçant
\u@\h: \w
par\W
.Vous pouvez faire la même chose avec n'importe quelle commande qui fait écho au bon code d'échappement:
echo -en "\e]0;${PWD##*/}\a"
... mais alors vous vous battriez constamment contre bash pour l'empêcher de le faire en utilisant PS1 (la meilleure façon).
la source
Oui. Prepend:
\[\e]0;\W\a\]
sur votre PS1. Cela ne changera pas l'apparence de vos invites, mais définira automatiquement le titre de vos onglets de terminal sur le nom de base du répertoire de travail actuel.la source