GNU/Linux >> Tutoriels Linux >  >> Linux

Définir des variables d'environnement dans un répertoire particulier

dans votre bashrc, définissez ceci :

PROMPT_COMMAND='[[ $PWD == "/foo/bar/" ]] && export FOO=BAR || unset FOO'

Le contenu de la variable PROMPT_COMMAND sera exécuté chaque fois que votre invite est réécrite (juste avant qu'elle ne soit écrite en fait) la commande ci-dessus vérifie la variable $PWD (qui contient le répertoire de travail actuel de votre shell) par rapport à "/foo/bar" si elle correspond exporte votre variable si ce n'est pas le cas, la variable n'est pas définie.

EX

[email protected]$ PROMPT_COMMAND='[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO'
[email protected]$ pwd
/home/peteches
[email protected]$ cd test
[email protected]$ pwd
/home/peteches/test
[email protected]$ env | grep FOO
6:FOO=BAR
73:PROMPT_COMMAND=[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO
[email protected]$ cd ../
[email protected]$ pwd
/home/peteches
[email protected]$ env | grep FOO
72:PROMPT_COMMAND=[[ $PWD == "/home/peteches/test" ]] && export FOO=BAR || unset FOO
[email protected]$ 

Si cela ne vous dérange pas d'utiliser une solution de contournement, ajoutez-la à votre .bash_profile

mycd()
{
    cd $1
    if [ "$(pwd)" == "/your/folder/that/needs/env" ]; then
        export RAILS_ENV=development
    else
        export RAILS_ENV=
    fi;
}
alias cd=mycd

Chaque fois que vous vous déplacez vers un certain dossier, cela définira votre variable d'environnement ou ce que vous voulez


Tout d'abord, autant que je sache, bash ne recherchera pas un .bashrc file dans n'importe quel autre répertoire que votre home -- du moins, pas par défaut.

Deuxièmement, après avoir écrit de nouvelles entrées dans votre .bashrc , vous devriez source .bashrc le fichier, afin que les modifications aient lieu.


Linux
  1. Apprenez à définir vos variables $PATH de manière permanente sous Linux

  2. Variables "imbriquées" dans bash

  3. Définir un environnement temporaire ($PATH)

  4. Définir le nom de l'expéditeur dans la fonction de messagerie

  5. Comment effectuer un transfert ssh avec AllowTcpForwarding défini sur non ?

Comment définir des variables d'environnement dans MacOS

Comment définir et répertorier les variables d'environnement sous Linux

Comment définir et répertorier les variables d'environnement sous Linux

Comment SSH dans un répertoire particulier sous Linux

Comment définir et supprimer des variables d'environnement sous Linux

Comment configurer la confidentialité du répertoire dans cPanel ?