44 votes

Comment faire pour que GNU screen lise les modifications de .bash_profile/.bash_rc ?

Après avoir fait des changements dans .bash_rc o .bash_profile mais quand je lance GNU screen, il ne reconnaît pas ces changements. Je peux

source ~/.bash_profile

et cela fonctionne pour la fenêtre d'écran actuelle que j'ai ouverte, mais je dois le faire pour chaque fenêtre d'écran que j'ai ouverte.

Comment faire pour que screen lise les derniers changements dans ma configuration bash ?

72voto

Mike Points 2409

Si vous voulez que screen traite toujours votre shell comme un shell de connexion, et qu'il lise les mêmes fichiers que ceux qui seraient lus si vous démarriez un nouveau shell normalement, ajoutez la ligne suivante à ~/.screenrc (ou peut-être ~/.byobu/.screenrc (comme indiqué dans le commentaire) :

shell -$SHELL

De cette façon, vous n'avez pas besoin de lui dire manuellement de prendre vos fichiers comme source à chaque fois que vous démarrez un nouvel écran. Vous devriez cependant le faire si vous veniez d'effectuer des modifications et que vous vouliez que ces modifications soient reflétées dans votre écran actuel.

La documentation à ce sujet (ainsi que de nombreux autres détails d'écran) se trouve à l'adresse suivante ici . En principe, shell est une commande à l'écran lui indiquant d'exécuter ce qui suit lorsqu'il doit créer un nouveau shell. $SHELL est la variable habituelle contenant le chemin vers votre shell préféré. Et le tiret - devant $SHELL indique qu'il doit être exécuté en tant que shell de connexion (ce qui signifie généralement qu'il source votre ~/.bash_profile etc.).

Il est cependant utile de préciser que screen hérite par défaut de la plupart des variables d'environnement du shell dans lequel vous démarrez screen ; et un sous-shell de connexion peut modifier certaines variables d'environnement de manière inattendue. Je me suis retrouvé dans une situation où des éléments de mon $PATH étaient permutés. J'ai résolu le problème grâce à cette réponse particulièrement excellente sur le super-utilisateur.

Vous pouvez remarquer que le source disponible. Il est important de noter que cette commande génère un fichier de type screen plutôt que des commandes shell. Les autres commandes (d'écran) pertinentes comprennent eval y exec .

17voto

gpojd Points 12043

Vous devez le faire dans chaque écran que vous avez ouvert, car ils sont tous des coquilles différentes. Si vous avez besoin de changer les paramètres à chaque fois qu'un nouveau shell est ouvert, je vous suggère de mettre les changements dans ~/.bashrc à la place.

Apparemment, vous pouvez envoyer une commande à tous les Windows à la fois en utilisant cette syntaxe :

C-a :
at "#" stuff "source ~/.bash_profile^M"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X