В чем разница между `VAR =…` и `export VAR =…`?


11

Какая разница в выполнении

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

делать

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

и есть ли побочный эффект того или иного соединения SSH?

Ответы:


10

1-й устанавливает значение для переменной. Например, вы можете сделать

echo $MAVEN_OPTS

и он возвращает значение, но если вы выдадите его вне вашей оболочки, вы получите пустую строку.

В приходит export.

Экспорт - это инструкция к оболочке. Он говорит оболочке сделать эту переменную среды доступной для других программ. Без экспорта они доступны только внутри самой оболочки.

Если вы хотите , чтобы переменная быть постоянно доступны SSH читает ~/.ssh/environment, ssh2читает /etc/environmentи ~/.ssh2/environment, и добавляет строки формата VarName = значение для окружающей среды. Со sshстраницы руководства .


Хотя, если я выполню экспорт в пределах соединения SSH и разъединения, эта переменная не будет доступна для последующих соединений. как мне сделать это постоянным?
Помарио

Конечно, это не так :) @pomario добавил в ssh и ssh2 методы для добавления envs!
Rinzwind

Нет, подождите! :) Я имею в виду, что я подключаюсь к серверу по SSH и хочу добавить переменную среды, которая будет доступна для веб-интерфейса Jenkins. Есть ли способ сделать это?
Помарио

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

Устанавливает переменную оболочки с именем MAVEN_OPTS. Вероятно, за ним следует export MAVEN_OPTSкоманда, чтобы сделать эту переменную доступной как переменная окружения для дочерних программ, или команда оболочки, которая использует ее какjava $MAVEN_OPTS ...

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

Устанавливает переменную среды с именем MAVEN_OPTS. Эта переменная среды также доступна для дочерних программ.

Там нет никаких побочных эффектов, за исключением того, что некоторые ограничения памяти Java настроены для maven(система сборки iirc).


Черт возьми, Лекенштейн. Это четвертый раз сегодня. Иди сделай что-нибудь еще! >: D
Rinzwind

@Rinzwind Это делается в #bumblebee на Freenode IRC: P
Лекенштейн

Более 2 хороших ответов не плохая вещь :)
Tachyons
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.