Je tiens à garder mon bash_profile
dans un dépôt git et clone à ce que les machines que j'ai accès shell. Depuis que je suis dans la tmux
plupart du temps, j'ai une user@host
chaîne dans la ligne d'état, plutôt que sa place traditionnelle dans l'invite du shell.
Cependant, tous les sites que j'utilise ne sont pas tmux
installés, sinon je ne l'utilise pas toujours. J'aimerais détecter lorsque je ne suis pas en tmux
session et ajuster mon invite en conséquence. Jusqu'ici, ma solution à moitié cuite .bash_profile
ressemble à ceci:
_display_host_unless_in_tmux_session() {
# ???
}
export PROMPT_COMMAND='PS1=$(_display_host_unless_in_tmux_session)${REST_OF_PROMPT}'
(Vérifier à chaque fois n'est probablement pas la meilleure approche, alors je suis ouvert aux suggestions pour une meilleure façon de procéder. La création de scripts Bash n'est pas mon fort.)
TMUX_PANE
. J'ai seulement remarqué que votre recette ne fonctionnait pas. Plus tard, j'ai découvert que j'avais indûment utilisé (et par la suiteunset
) une variable dans un script shell que je recherchais dans mon.profile
.[ "$TERM" = "screen" ]
peut ne pas fonctionner. Dans mon cas, mon écran était enscreen-256
couleur.Après avoir essayé différentes méthodes, voici ce qui a finalement fonctionné pour moi, au cas où cela aiderait quelqu'un:
Dans cet extrait de code, je vérifie si nous ne sommes pas dans l'environnement TMUX, je le lance. Si vous mettez cet extrait de code dans votre
.bashrc
fichier, vous exécuterez automatiquement TMUX à chaque fois que vous ouvrez un terminal! PS: testé sur le shell Ubuntu.la source
Comme pour les réponses précédentes, le test de la
${TERM}
variable pourrait conduire à des castmux
extrêmes , définissant les variables d'environnement dans sa propre vieAfin de vérifier si vous êtes dans un
tmux
environnement, vérifiez simplement:$ [ -z "${TMUX}" ] && echo "not in tmux"
la source