O que “exportar” faz?

4

Eu nunca entendo o que "exportação" faz. Por exemplo, qual é a diferença entre esses dois?

  1. PYTHONPATH=/home/myaccount/ & export PYTHONPATH e
  2. PYTHONPATH=/home/myaccount/

Um com exportação e outro sem.

    
por Shen 20.07.2012 / 05:48

2 respostas

5

Se você não exportar, a variável de ambiente só será visível localmente. A exportação os torna disponíveis para outros programas e shells que você pode lançar (a partir desse shell).

    
por Jazz 20.07.2012 / 06:10
2

"Exportando" uma variável no shell a torna disponível para todos os subshells e processos criados por esse shell.

Ele faz não disponibilizá-lo em todo lugar no sistema, somente por processos criados a partir desse shell.

Aqui está um exemplo que você pode tentar provar.

("set" listará todas as variáveis definidas no terminal)

   $ ZZZ=test
   $ bash # this runs bash in bash, you can also type 'xterm' to see it work there too.
   $ set |grep ZZZ # You will not see ZZZ=test
   $ exit # Lets get out of the subshell and try export!
   $ export ZZZ
   $ bash
   $ set |grep ZZZ # and there we go! our variable is set in the subshell/process.

Você pode abrir outro terminal e ver que ele não está definido lá, no entanto.

link

    
por JamezQ 20.07.2012 / 07:20