global bash_profile

16

Sei que existem arquivos /etc/profile e /etc/bashrc para definir variáveis de ambiente global e talvez eu esteja apenas entendendo mal os propósitos deles, mas ...

Existe um arquivo global bash_profile ?

Estou usando o Mac OS X

    
por Hubro 22.09.2012 / 18:53

2 respostas

13

Não se chama bash_profile , mas o local padrão para a configuração global do bash é /etc/bash.bashrc . É comum chamar isto de /etc/profile se o shell for bash. Por exemplo, no meu /etc/profile , tenho:

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1=’0
    if [ ‐f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  fi
fi

Em termos de uso, /etc/profile fornece configuração de todo o sistema para todos os shells compatíveis com o Bourne (sh, bash, ksh, etc.). Normalmente não há necessidade de um equivalente /etc/bash_profile , porque a intenção do arquivo de perfil é controlar o comportamento de shells de login. Normalmente, qualquer coisa que você queira fazer não será específica. /etc/bash.bashrc é específico do bash e será executado para shells de login e não-login.

Para complicar ainda mais as coisas, parece que o OS X nem sequer tem um /etc/bash.bashrc . Isso provavelmente está relacionado ao fato de os Terminais no OS X usarem como shell de login , então a distinção é perdida:

An exception to the terminal window guidelines is Mac OS X’s Terminal.app, which runs a login shell by default for each new terminal window, calling .bash_profile instead of .bashrc. Other GUI terminal emulators may do the same, but most tend not to.

Eu não executo o OS X, então a extensão do meu conhecimento termina aí.

    
por 22.09.2012 / 19:00
4

/etc/profile é o global bash_profile . Não há nenhum arquivo específico para o bash, o bash apenas lê o arquivo padrão lido por todos os shell estilo Bourne. É aí que você pode definir variáveis de ambiente em todo o sistema.

Veja Existe um arquivo equivalente ".bashrc" lido por todos os shells? para uma visão geral genérica dos arquivos de inicialização comuns do bash.

    
por 23.09.2012 / 04:17