TMUX définition des variables d'environnement pour les sessions
Je travail dans une situation où j'ai plusieurs projets et au sein de chacune de nombreux scripts qui rendent l'utilisation de variables d'environnement à des valeurs spécifiques à ce projet.
Ce que je voudrais faire est d'utiliser une session tmux pour chaque projet et de définir les variables de sorte qu'ils sont définis pour toutes les fenêtres de cette session.
J'ai essayé d'utiliser le set-environnement option qui fonctionne à l'aide de l'option-g, mais définit alors la variable pour toutes les sessions connecté à ce serveur.
Sans l'option-g, je vois son ensemble lors de l'utilisation de spectacle de l'environnement, mais ne peut pas accéder à la variable dans la coquille.
Quelqu'un a un moyen de corriger cela?
À l'aide de combinaisons de 1,8 et tcsh
OriginalL'auteur user1223028 | 2013-12-20
Vous devez vous connecter pour publier un commentaire.
Vous pouvez accéder à tmux (locale) des variables d'environnement pour chaque session, alors que dans une session, avec la commande:
Si vous ajoutez le paramètre-g, vous obtenez l'environnement pour toutes les sessions, c'est à dire l'environnement mondial. Les environnements locaux ne sont PAS les mêmes que pour l'environnement mondial. La commande précédente impressions de l'ensemble de l'environnement local, mais vous pouvez aussi regarder à une seule variable:
Pour obtenir la valeur, vous pouvez utiliser quelques-sed de la magie ou de l'utilisation "exporter" sur une seule variable, ou vous pouvez même d '"exportation" de l'ensemble de l'environnement de votre shell. Ci-dessous sont les 3 approches.
Si nécessaire, vous pouvez simplement ajouter le paramètre-g, après le spectacle-environnement de commande si vous souhaitez accéder à l'environnement mondial.
OriginalL'auteur gospes
J'ai fait un simple
avant de commencer la session tmux, ce qui me donne accès à
MY_VAR
à partir de toutes les fenêtres à l'intérieur de cette session.Pour cela, vous pourrait
alias tmux='SOME_ENV_VAR=somevalue tmux'
OriginalL'auteur Michael Härtl
J'ai trouvé un moyen pour ce faire. Je suis l'aide de tmux 2.5.
Fond
Dans le tmux homme page, il déclare qu'il existe deux groupes de variables d'environnement: global et par session. Lorsque vous créez une nouvelle session tmux, il va fusionner les deux groupes ensemble et que devient l'ensemble de variables d'environnement disponibles au sein de la session. Si les variables d'environnement sont ajoutés au groupe global, il semble qu'elles seront partagées entre toutes les sessions ouvertes. Vous souhaitez les ajouter à la séance de groupe.
Ce faire
Étape 1: Créer une session tmux.
Étape 2: Ajouter une variable d'environnement à la à la séance de groupe.
Cela s'ajoute la variable d'environnement par session ensemble de variables d'environnement. Si vous tapez
tmux showenv
, vous le verrez dans la sortie. Cependant, il n'est pas dans l'environnement de la session en cours. En tapantecho $FOO
ne vais pas vous donner quoi que ce soit. Il y a probablement une meilleure façon de le faire, mais je l'ai trouvé plus facile de simplement exporter manuellement:Étape 3: Créer de nouvelles fenêtres/volets
Maintenant, chaque fois que vous créez une nouvelle fenêtre ou volet dans la session en cours, tmux saisira le FOO variable d'environnement à partir de la session par session de groupe.
Automatisant
- Je utiliser des scripts bash pour créer automatiquement des combinaisons de séances qui font usage de ces variables d'environnement. Voici un exemple de comment je pourrais automatiser la ci-dessus:
OriginalL'auteur RobotNerd