Significado de 'export PATH =…' em .bash_profile

1

Estou usando um mac há alguns anos e, como estou aprendendo Ruby on Rails, senti que deveria aprender mais sobre o sistema que estou usando. Eu dei uma olhada no ~/.bash_profile , parece que isso

PATH="/Users/nikolajandersen/.apportable/SDK/bin:$PATH"

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM$

# Setting PATH for Python 3.3
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}"
export PATH
export PATH=/usr/local/bin:$PATH
export PATH=/usr/local/bin:$PATH

Sou completamente novo nisso e tentei pesquisar o meu caminho, mas ainda há algumas perguntas. O primeiro é: como existem duas linhas export PATH=/usr/local/bin:$PATH idênticas, tentei excluir a primeira. Como resultado, comandos como nano e ls não funcionavam mais. Eu reverti a mudança, mas não entendi por que isso foi dito duas vezes.

Outra pergunta é: por que às vezes $ PATH e às vezes apenas PATH sem o $? Por que -s "$HOME/.rvm/scripts/rvm" está em chaves [[]]? E o que faz export PATH ?

Talvez alguém possa me guiar para um guia / tutorial / livro de fácil compreensão, onde eu possa aprender tudo isso?

Atualizar Esta é a saída de echo $PATH

/usr/local/bin:/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.3/bin:/Users/nikolajandersen/.rvm/gems/ruby-2.0.0-p353/bin:/Users/nikolajandersen/.rvm/gems/ruby-2.0.0-p353@global/bin:/Users/nikolajandersen/.rvm/rubies/ruby-2.0.0-p353/bin:/Users/nikolajandersen/.rvm/bin:/Users/nikolajandersen/.apportable/SDK/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/sm/bin:/opt/sm/pkg/active/bin:/opt/sm/pkg/active/sbin

Parece que você estava certo com a nova linha. Eu apaguei a linha novamente e certifiquei-me de que há uma linha em branco no final. Agora os comandos ainda estão funcionando.

    
por Niko 26.01.2014 / 16:23

1 resposta

2

O PATH antes de = é um nome de variável e a combinação informa bash para armazenar o material por trás do = na variável.
O $PATH é o valor da variável PATH até então.

A combinação PATH="some_path_to_stuff:$PATH" estende a variável PATH. Em bash , esta é uma lista separada por dois-pontos ( : ).

Em relação à adição dupla de /usr/local/bin , só posso imaginar que a segunda versão não tem nova linha depois dela (e está no final do arquivo). Em princípio, isso deve dar a você um PATH que começa com /usr/local/bin:/usr/local/bin:.... . Você pode verificar isso com

echo $PATH

E se houver apenas uma vez /usr/local/bin , faça:

echo "" >> ~/.bash_profile

e faça o login e tente imprimir $PATH novamente.

    
por 26.01.2014 / 16:32

Tags