В чем разница между `VAR=...` и `export VAR=...`?
Какая разница в выполнении
$ MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"
делать
$ export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"
и есть ли какой-либо побочный эффект выполнения любого в соединении SSH?
2 ответа
1-й устанавливает значение для переменной. Например, вы можете сделать
echo $MAVEN_OPTS
и он возвращает значение, но если вы выдадите его вне вашей оболочки, вы получите пустую строку.
В приходит export
,
Экспорт - это инструкция к оболочке. Он говорит оболочке сделать эту переменную среды доступной для других программ. Без экспорта они доступны только внутри самой оболочки.
Если вы хотите, чтобы переменная была постоянно доступна, ssh читает ~/.ssh/environment
,ssh2
читает /etc/environment
а также ~/.ssh2/environment
и добавляет строки в формате VARNAME= значение в среду. От ssh
справочная страница.
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).