Obtendo "PATH de exportação" para ficar


2

Acabei de atualizar para o Lion e estou usando o bash pela primeira vez (minha experiência anterior é com csh e tcsh). Eu encontrei um comportamento inesperado. Um exemplo simples é:

  1. Eu crio um arquivo contendo os seguintes comandos:

    echo PATH BEFORE is $PATH
    PATH=/usr/local/fortran:$PATH
    export PATH
    echo PATH AFTER is $PATH
    
  2. Eu abro um terminal (no bash) e executo o arquivo mostrado acima. Ele ecoa o resultado esperado:

    PATH BEFORE is /usr/bin: ...
    PATH AFTER is /usr/local/fortran:/usr/bin ...
    
  3. Eu então digito:

    echo $PATH
    

    e /usr/local/fortran NÃO faz parte do caminho. Eu assumi que o comando de exportação tornaria o PATH pegajoso. Alguém pode explicar por que isso não está acontecendo?

Respostas:


6

Você precisa fonte o arquivo para que o exportado variáveis ​​são acessíveis ao shell atual.

source script-file
echo $PATH

… Ou adicione o export comando para um dos arquivos de configuração do bash - No OS X, que normalmente seria .bash_profile.


"source" resolve o problema. obrigado
DMF

@DMF Se você quiser que ele fique para cada sessão de terminal, veja minha atualização para a resposta.
slhck

Isso é para o código que estou incorporando em uma GUI. Eu não (e não quero) altero as coisas que .bash_profile. Em vez disso, quero executar essa alteração em $ PATH apenas para o shell atual. Então, a abordagem "source" resolve o problema.
DMF

@DMF Tudo bem. Certifique-se de aceitar a resposta do príncipe John Wesley clicando na marca ao lado! :)
slhck

1

Colocar

PATH=/usr/local/fortran:$PATH
export PATH

no seu arquivo .bash_profile.

Como você executa o arquivo que contém o comando? Tente pesquisar isso com source (fonte do homem)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.