Por que o shell não está lendo os arquivos de inicialização do Bash?

0

Eu só estou tentando fazer a simples tarefa de adicionar meu diretório MySQL à variável PATH para que eu possa use os comandos mysql , etc. no meu terminal no meu Mac OS X 10.6.6 (Snow Leopard). Depois de alterar o .profile , .bash_profile e até mesmo criar um .bashrc e certificando-me de que meu caminho foi inserido corretamente, toda vez que eu tento executar o comando mysql , ou pressionando

echo $PATH

me dá os mesmos resultados exatos:

/Users/GabbAHH/.rvm/gems/ruby-1.9.2-p136@rails3tutorial/bin:/Users/GabbAHH/.rvm/gems/ruby-1.9.2-p136@global/bin:/Users/GabbAHH/.rvm/rubies/ruby-1.9.2-p136/bin:/Users/GabbAHH/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin

Como você pode ver, não há MySQL. Mais tarde, percebo que esse não é o problema, já que removi todos os três arquivos do meu diretório de usuário /Users/GabbAHH/ e ainda obtenho o mesmo resultado!

Neste momento, o script dentro dos meus arquivos de inicialização é assim:

export PATH=/usr/local/mysql/bin:$PATH

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

Houve algo que fiz que fez o meu Terminal ignorar esses arquivos de inicialização? É só ler da pasta /etc/profile ?

Isso dá o mesmo resultado? Independentemente disso, eu os troquei.

Além disso, como posso saber se estou usando um shell interativo ou não interativo e um shell de login / não logon? Eu pareço ser capaz de criar pastas, etc, sem um prompt para inserir minha senha, embora eu me lembre antes que eu tinha que sudo um monte de comandos ao instalar gems para Ruby, etc. Além disso, eu precisei inserir minha senha ao ativar / desativar o MySQL.

    
por writ 03.03.2011 / 07:54

2 respostas

2

Basta colocar:

echo HELLO, I AM HERE

no seu script de inicialização e faça o login como de costume.

Se você achar que a string não está sendo impressa, sim, você está contornando esse script.

Além disso, você deve nos dizer qual script você está colocando desde bash tem algumas ... bastante maravilhosas ... regras para decidir quais scripts são executados :-) Você pode obter os detalhes da seção INVOCATION de man bash . Minha versão particular continua por cerca de 50 linhas (e isso é com uma coluna de 150% xterm ), então eu não vou aborrecer você postando aqui.

Basta dizer que é complicado.

Por exemplo, você pode estar sendo mordido pelo fato de que bash só executará o primeiro de ~/.bash_profile , ~/.bash_login e ~/.profile que existe e é legível. Pode ser um shell não interativo em que as regras são diferentes. Você pode estar executando o shell com --noprofile ou --norc ou --rcfile=whatever ou --posix .

As possibilidades, embora não sejam infinitas, são incrivelmente irritantes.

    
por 03.03.2011 / 08:03
2

Meu problema era a existência de um .bash_profile, então fiz minhas alterações modificando-as. Tudo o que estava fazendo antes era configurar meu JAVA_HOME e um GROOVY_HOME ... então adicionei minhas alterações ao final desse arquivo e agora tudo está funcionando muito bem.

Obrigado!

    
por 09.10.2012 / 15:12