Jaka jest różnica między `VAR =…` a `export VAR =…`?

11

Jaka jest różnica w działaniu

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

robić

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

i czy jest jakiś efekt uboczny robienia jednego z połączeń SSH?

Pomario
źródło

Odpowiedzi:

10

Pierwszy ustawia wartość na zmienną. Na przykład możesz to zrobić

echo $MAVEN_OPTS

i niech zwróci wartość, ale jeśli wydasz to poza powłoką, zostanie zwrócony pusty ciąg znaków.

Nadchodzi export.

Eksport jest instrukcją dla powłoki. Mówi powłoce, aby ta zmienna środowiskowa była dostępna dla innych programów. Bez eksportu są dostępne tylko w samej powłoce.

Jeśli chcesz zmienna być stale dostępna ssh czyta ~/.ssh/environment, ssh2czyta /etc/environmenti ~/.ssh2/environment, i dodaje linie formatu varname = wartość dla środowiska. Od sshstrony człowieka .

Rinzwind
źródło
Chociaż jeśli wydam eksport w ramach połączenia SSH i rozłączę, zmienna ta nie będzie dostępna dla kolejnych połączeń. jak mogę to zrobić na stałe?
Pomario
Oczywiście, że nie :) @pomario dodaje metody ssh i ssh2 do dodawania envs!
Rinzwind
Nie, czekaj! :) Mam na myśli to, że łączę się z serwerem za pomocą SSH i chcę dodać zmienną środowiskową, która będzie dostępna dla interfejsu internetowego Jenkins. czy jest jakiś sposób na osiągnięcie tego?
Pomario
7
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

Ustawia zmienną powłoki o nazwie MAVEN_OPTS. Najprawdopodobniej po nim jest export MAVEN_OPTSpolecenie, aby ta zmienna była dostępna jako zmienna środowiskowa dla programów potomnych, lub polecenie powłoki, które jej używajava $MAVEN_OPTS ...

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

Ustawia zmienną środowiskową o nazwie MAVEN_OPTS. Ta zmienna środowiskowa jest również dostępna dla programów potomnych.

Nie ma żadnych skutków ubocznych, z wyjątkiem tego, że dostosowuje się niektóre limity pamięci Java maven(kompilacja systemu iirc).

Lekensteyn
źródło
darn it Lekensteyn. To dzisiaj czwarty raz. Zrób coś innego! >: D
Rinzwind
@Rinzwind Robi to w #bumblebee na Freenode IRC: P
Lekensteyn
Więcej niż 2 dobre odpowiedzi nie są złe :)
Tachyons