Quelle est la différence entre «VAR =…» et «export VAR =…»?

11

Quelle est la différence en faisant

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

à faire

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

et y at-il un effet secondaire de faire soit dans une connexion SSH?

Pomario
la source

Réponses:

10

Le 1er définit la valeur de la variable. Par exemple, vous pouvez faire

echo $MAVEN_OPTS

et demandez-lui de renvoyer la valeur, mais si vous émettez cela en dehors de votre shell, vous aurez une chaîne vide retournée.

En vient export.

L'exportation est une instruction vers le shell. Il indique au shell de rendre cette variable d'environnement disponible pour d'autres programmes. Sans l'exportation, ils ne sont disponibles que dans le shell lui-même.

Si vous voulez que la variable soit disponible en permanence, ssh lit ~/.ssh/environment, ssh2lit /etc/environmentet ~/.ssh2/environmentet ajoute des lignes du format VARNAME = value à l'environnement. Depuis la sshpage de manuel .

Rinzwind
la source
Cependant, si j'émets l'exportation dans une connexion SSH et la déconnexion, cette variable ne sera pas disponible pour les connexions suivantes. comment puis-je le rendre permanent?
Pomario
Bien sûr que non :) @pomario ajouté dans les méthodes ssh et ssh2 pour ajouter des envs!
Rinzwind
Non attends! :) Ce que je veux dire, c'est que je me connecte au serveur en utilisant SSH et que je veux ajouter une variable d'environnement qui sera accessible à l'interface Web Jenkins. existe-t-il un moyen d'y parvenir?
Pomario
7
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

Définit une variable shell nommée MAVEN_OPTS. Il est probablement suivi d'une export MAVEN_OPTScommande pour rendre cette variable disponible en tant que variable d'environnement pour les programmes enfants, ou d'une commande shell qui l'utilise commejava $MAVEN_OPTS ...

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

Définit une variable d'environnement nommée MAVEN_OPTS. Cette variable d'environnement est également disponible pour les programmes enfants.

Il n'y a pas d'effets secondaires, sauf que certaines limites de mémoire java sont ajustées maven(un système de construction iirc).

Lekensteyn
la source
sacrément Lekensteyn. C'est la 4ème fois aujourd'hui. Allez faire autre chose! >: D
Rinzwind
@Rinzwind Le faire dans #bumblebee sur Freenode IRC: P
Lekensteyn
Plus de 2 bonnes réponses ne sont pas une mauvaise chose :)
Tachyons