Was ist der Unterschied zwischen "VAR = ..." und "Export VAR = ..."?

11

Was ist der Unterschied dabei?

$ MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

zu tun

$ export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

und gibt es irgendwelche Nebeneffekte bei einer SSH-Verbindung?

Pomario
quelle

Antworten:

10

Der erste setzt den Wert auf die Variable. Zum Beispiel können Sie tun

echo $MAVEN_OPTS

und lassen Sie es den Wert zurückgeben, aber wenn Sie dies außerhalb Ihrer Shell ausgeben würden, wird eine leere Zeichenfolge zurückgegeben.

Es kommt herein export .

Exportieren ist eine Anweisung an die Shell. Es weist die Shell an, diese Umgebungsvariable anderen Programmen zur Verfügung zu stellen. Ohne den Export sind sie nur in der Shell selbst verfügbar.

Wenn Sie die Variable wollen permanent verfügbar sein ssh liest ~/.ssh/environment, ssh2liest /etc/environmentund ~/.ssh2/environment, und fügt Zeilen des Formats VARNAME = Wert für die Umwelt. Von der sshManpage .

Rinzwind
quelle
Wenn ich den Export innerhalb einer SSH-Verbindung und die Trennung ausführe, ist diese Variable für nachfolgende Verbindungen nicht verfügbar. Wie mache ich es dauerhaft?
Pomario
Natürlich nicht :) @pomario in den Methoden ssh und ssh2 zum Hinzufügen von envs hinzugefügt!
Rinzwind
Nein, warte! :) Ich meine, ich verbinde mich mit SSH mit dem Server und möchte eine Umgebungsvariable hinzufügen, auf die die Jenkins-Weboberfläche zugreifen kann. Gibt es eine Möglichkeit, dies zu erreichen?
Pomario
7
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

Legt eine Shell-Variable mit dem Namen fest MAVEN_OPTS. Es folgt wahrscheinlich ein export MAVEN_OPTSBefehl, um diese Variable als Umgebungsvariable für untergeordnete Programme verfügbar zu machen, oder ein Shell-Befehl, der sie wie folgt verwendetjava $MAVEN_OPTS ...

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

Legt eine Umgebungsvariable mit dem Namen fest MAVEN_OPTS . Diese Umgebungsvariable steht auch untergeordneten Programmen zur Verfügung.

Es gibt keine Nebenwirkungen, außer dass einige Java-Speichergrenzen angepasst wurden maven(ein Build-System iirc).

Lekensteyn
quelle
verdammt noch mal Lekensteyn. Das ist heute das 4. Mal. Mach etwas anderes! >: D
Rinzwind
@Rinzwind Tun dies in #bumblebee auf Freenode IRC: P
Lekensteyn
Mehr als 2 gute Antwort ist keine schlechte Sache :)
Tachyons