Qual é a diferença entre 'VAR =…' e 'export VAR =…'?

10

Qual é a diferença em fazer

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

para fazer

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

e existe algum efeito colateral de fazer isso em uma conexão SSH?

    
por Pomario 30.04.2012 / 14:58

2 respostas

8

O primeiro define o valor para a variável. Por exemplo, você pode fazer

echo $MAVEN_OPTS

e faça com que ele retorne o valor, mas se você emitir isso fora de seu shell, você terá uma string vazia retornada.

Em vem export .

Export é uma instrução para o shell. Diz ao shell para disponibilizar esta variável de ambiente para outros programas. Sem a exportação, eles estão disponíveis apenas dentro do próprio shell.

Se você deseja que a variável esteja permanentemente disponível, as leituras ssh ~/.ssh/environment , ssh2 leituras /etc/environment e ~/.ssh2/environment e adiciona linhas do formato VARNAME = valor ao ambiente. Na ssh man page .

    
por Rinzwind 30.04.2012 / 15:04
6
MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

Define uma variável do shell chamada MAVEN_OPTS . É provavelmente seguido por um comando export MAVEN_OPTS para disponibilizar esta variável como variável de ambiente para programas-filhos, ou um comando shell que usa como java $MAVEN_OPTS ...

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

Define uma variável de ambiente chamada MAVEN_OPTS . Esta variável de ambiente também está disponível para programas filhos.

Não há efeitos colaterais, exceto que alguns limites de memória java são ajustados para maven (um sistema de compilação iirc).

    
por Lekensteyn 30.04.2012 / 15:03