O Mac Gnu-Screen não carrega o padrão .bash_profile

12

Eu tenho um monte de configurações personalizadas no meu bash_profile. quando uso o gnu-screen, percebi que minhas telas não executam source /Users/disappearedng/.bash_profile . Eu tento colocar /Users/disappearedng/.bash_profile de origem no meu arquivo .screenrc, mas depois ele reclama que o alias não é um comando ... (Eu acho que o screenrc precisa de comando específico do screenrc).

Eu tentei mudar meu .bash_profile para .profile ou .bash_rc. Nada disso funciona.

Qualquer ajuda?

    
por disappearedng 25.07.2011 / 00:31

3 respostas

13

O arquivo .bash_profile (e também o arquivo .profile) é carregado para os shells de login, os shells não-login usam .bashrc (sem _ symbol). Existe uma linha no arquivo .screenrc que diz à tela que shell deve aparecer ao iniciar uma janela de tela (quando não iniciar um programa específico como o aplicativo de janela). No meu arquivo .screenrc, isso é assim (incluindo comentários também):

# shell:  Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
  shell -$SHELL

Verifique seu arquivo .screenrc e verifique se a linha do shell tem o traço na frente dele. Com esse símbolo de traço e forçando um shell de login, você obterá seu .bash_profile originado. A variável $ SHELL no meu .screenrc está usando o valor do shell conforme fornecido pelo shell que inicia a tela (geralmente para mim é bash).

Caso você esteja se perguntando, a maior diferença que eu consegui descobrir entre os shells de login e não-login é que um shell não-login é normalmente o que é chamado para executar scripts.

    
por 25.07.2011 / 00:42
1

O sourcing .bash_profile é, na verdade, algo diferente do que o aplicativo para terminal Mac faz que a maioria dos aplicativos de terminal não faz. Tela lê ~/.bashrc no entanto, cada vez que você gerar um novo shell.

Se você renomear seu ~/.bash_profile para ~/.bashrc (sem sublinhado entre bash e rc, como em sua pergunta), ele será originado.

Minha estratégia preferida, no entanto, é colocar todas as minhas configurações no bashrc e, em seguida, obtê-las em bash_profile da seguinte forma:

[ -f .bashrc ] && . .bashrc
    
por 28.08.2014 / 04:37
-1

Não é necessário alterar nenhum arquivo de configuração, se você gravar todas as configurações em .bash_profile , como normalmente faz para configurar seu terminal, e criar um link chamado .bashrc apontando para seu .bash_profile para as sessões de tela via:

$ ln -s ~/.bash_profile ~/.bashrc

Quaisquer alterações feitas em um dos arquivos são armazenadas em .bash_profile , mas também acessíveis por .bashrc .

A única desvantagem é que você não pode adicionar configurações a apenas um dos arquivos de configuração.

    
por 07.12.2014 / 03:11