GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Legen Sie Umgebungsvariablen in einem bestimmten Verzeichnis fest

Setzen Sie in Ihrem Bashrc Folgendes:

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

Der Inhalt der PROMPT_COMMAND-Variablen wird jedes Mal ausgeführt, wenn Ihre Eingabeaufforderung neu geschrieben wird (kurz bevor sie tatsächlich geschrieben wird). Der obige Befehl prüft die $PWD-Variable (die das aktuelle Arbeitsverzeichnis Ihrer Shell enthält) gegen „/foo/bar“, wenn dies der Fall ist stimmt, wird Ihre Variable exportiert, wenn dies nicht der Fall ist, wird die Variable zurückgesetzt.

Z. B.

[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]$ 

Wenn es Ihnen nichts ausmacht, eine Problemumgehung zu verwenden, fügen Sie diese zu Ihrem .bash_profile hinzu

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

Jedes Mal, wenn Sie zu einem bestimmten Ordner wechseln, wird dies Ihre Umgebungsvariable oder was auch immer Sie wollen setzen


Erstens, AFAIK, bash sucht nicht nach .bashrc Datei in einem anderen Verzeichnis als Ihrem Home-Verzeichnis -- zumindest nicht standardmäßig.

Zweitens, nachdem Sie neue Einträge in Ihren .bashrc geschrieben haben , sollten Sie source .bashrc der Datei, damit Änderungen stattfinden.


Linux
  1. 7 Praktische Beispiele für den cd-Befehl unter Linux

  2. „Verschachteln“ von Variablen in bash

  3. Legen Sie eine temporäre Umgebung fest ($PATH)

  4. rsync-Verzeichnis, damit alle Änderungen atomar erscheinen

  5. Wie druckt man scheinbar versteckte Umgebungsvariablen?

So legen Sie Umgebungsvariablen in MacOS fest

So setzen und listen Sie Umgebungsvariablen in Linux auf

So setzen und listen Sie Umgebungsvariablen in Linux auf

So führen Sie SSH in ein bestimmtes Verzeichnis unter Linux aus

So setzen und löschen Sie Umgebungsvariablen unter Linux

Wie richte ich den Verzeichnisdatenschutz in cPanel ein?