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

Umgebungsvariablen *in* /etc/environment referenzieren?

Ich habe kürzlich /etc/environment entdeckt , was eine üblichere Methode zum Einrichten einfacher Umgebungsvariablen als Skripte zu sein scheint, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, Umgebungsvariablen in der /etc/environment-Datei rückzuverweisen.

Das heißt, ich habe dies:

JAVA_HOME="/tools/java"
GRAILS_HOME="/tools/grails"
GROOVY_HOME="/tools/groovy"
GRADLE_HOME="/tools/gradle"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

Wenn ich versuche, $JAVA_HOME/bin hinzuzufügen zur PATH-Definition bekomme ich jedoch $JAVA_HOME/bin und nicht die interpolierte Variable. Um dies zu beheben, erstelle ich „environment.sh“ in „profile.d“, um den /bin hinzuzufügen Einträge in den Pfad, aber das scheint schlampig und unorganisiert.

Gibt es eine Möglichkeit, die Umgebungsvariablen in /etc/environment rückzuverweisen?

Beste Antwort

Die /etc/environment Datei wird von pam_env gelesen PAM-Modul. Es unterstützt nur einfache Schlüssel-Wert-Paare ohne Substitution auf der rechten Seite.

Wenn Sie den Wert mit Substitutionen oder anderen Shell-Erweiterungen aufbauen möchten, müssen Sie eine Shell durchlaufen. /etc/profile (oder eine Datei in /etc/profile.d ) ist der richtige Ort dafür. Dies ist der traditionelle Ort (/etc/environment ist eine relativ neue Innovation in der Geschichte der Unix-Systeme), und es ist sicherlich nichts nachlässig, es zu verwenden. Der Hauptvorteil von /etc/environment ist, dass es das Setzen von Umgebungsvariablen auch bei Login-Methoden erlaubt, die keine Shell beinhalten, oder für Benutzer, die eine Nicht-Bourne-Shell verwenden, aber diese sind in der Praxis nicht üblich.


Ubuntu
  1. Festlegen von Shell-Umgebungsvariablen | BASH-Shell

  2. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  3. So übergeben Sie Umgebungsvariablen an Docker-Container

  4. Wie viele Umgebungsvariablen nicht gesetzt sind

  5. Festlegen von Linux-Umgebungsvariablen

So legen Sie die Umgebungsvariable in Windows fest

So legen Sie Umgebungsvariablen in MacOS fest

So setzen/löschen Sie Umgebungsvariablen in Linux

Nutzung der Docker-Compose-Umgebungsvariablen

Einfache Schritt-für-Schritt-Anleitung zu Linux-Umgebungsvariablen

Linux-Umgebungsvariablen