1 votes

Source par bashrc lorsque je quitte une session 'ssh'.

Je suis sous OS X et j'utilise iTerm2.

J'ai mis à jour mon profil Bash sur plusieurs de mes serveurs de sorte que lorsque je ssh Je peux savoir en un coup d'œil, grâce aux onglets, sur quelles boîtes je me trouve. Lorsque je sors d'une ssh session, le Shell qui a lancé la ssh la session n'a pas de source ~/.bashrc (ce qui, d'après ce que j'ai compris, est la procédure normale), de sorte que les titres et les couleurs de mes onglets restent les mêmes qu'à l'origine. ssh sesión.

Normalement, lorsque je quitte un ssh je quitterai également le Shell sur l'ordinateur que j'utilise physiquement. Mais pour des raisons de cohérence, je voudrais que mes onglets iterm2 reprennent les titres et les couleurs appropriés pour le Shell qu'ils représentent lorsque je quitte une session. ssh sesión.

Existe-t-il un moyen d'approvisionner mon .bashrc lorsque je quitte un ssh session ?

Dans tous les ~/.bash_profile , ~/.bashrc y ~/.bash_logout J'ai les lignes suivantes :

export PROMPT_COMMAND=''
echo -e "\033];test machine name\007"

Lorsque je quitte un ssh session, il semble qu'aucun de ces fichiers Bash dans mon répertoire personnel n'ait pour origine la réimpression du titre de l'onglet. Lorsque je les source manuellement avec source ~/.bashrc le titre de l'onglet se réimprime très bien. La syntaxe n'est donc pas mauvaise.

0 votes

Jetez un coup d'œil à ~/.bash_logout .

0 votes

@Cyrus Une bonne idée que je n'ai pas essayée. Cependant, je l'ai essayé et le problème persiste. Veuillez voir mon édition.

2voto

John1024 Points 15663

Existe-t-il un moyen de récupérer mon fichier .bashrc lorsque je quitte une session ssh ?

Oui, définissez une fonction Shell :

ssh() { command ssh "$@"; source ~/.bashrc; }

0 votes

Vous pouvez utiliser command ssh au lieu de coder en dur le chemin d'accès.

0 votes

@glennjackman Bonne suggestion. Réponse mise à jour pour être utilisée command .

0 votes

@glennjackman L'un d'entre vous peut-il m'indiquer une ressource pour expliquer cela afin que je puisse comprendre ce qui se passe ? Googler 'bash command' ne fonctionne évidemment pas pour moi lol.

1voto

jjlin Points 14572

Si vous voulez que cela soit spécifique à une commande, redéfinissez alors ssh (comme mentionné dans une autre réponse) est probablement la meilleure approche.

Si vous préférez en fait quelque chose de plus général, bash a un PROMPT_COMMAND La variable Shell que vous pouvez définir pour exécuter une commande (ou plusieurs commandes) avant que l'invite Shell ne soit imprimée, ce qui se produirait juste après ssh (ou toute autre commande) retourne au Shell.

0 votes

Veuillez voir mon édition.

1 votes

Vous devez mettre les guillemets simples au bon endroit, c'est-à-dire export PROMPT_COMMAND='echo -e "\033];test machine name\007"' .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X