Exportar a função bash em .profile ou .xprofile mata X durante o login

1

Estou tentando exportar uma função bash durante o login do Gnome usando um dos scripts de inicialização do shell de login. Eu tentei fazer isso em ~ / .profile e ~ / .xprofile, mas isso resulta em X morrendo e reiniciando na tela de login.

Eu posso exportar variáveis de ambiente desses scripts sem problemas durante o login do Gnome; somente exportar uma função (qualquer função, independentemente do conteúdo) mata X.

Eu também posso fornecer ambos os scripts a partir de um terminal e a função é exportada como esperado sem problemas. A função também é exportada bem se os scripts forem invocados por um shell de login do bash ( bash -l ) de um terminal.

Por que a exportação de uma função no login do Gnome está matando X? / Posso fazer alguma coisa para corrigir isso?

(Eu percebo que eu poderia exportar a função do .bashrc, mas usar um perfil é mais conveniente na minha situação e eu gostaria de entender por que essa falha está acontecendo.)

    
por Ian Mackinnon 14.02.2011 / 19:08

2 respostas

2

POSIX sh não permite que funções sejam exportadas, mas o bash sim. ~/.profile é originado por um shell POSIX, não por bash. Também é inútil exportar funções, pois somente o bash pode lê-las e usá-las. Basta colocar as funções em ~/.bashrc e não exportá-las.

    
por geirha 14.02.2011 / 19:21
0

A resposta aceita está incorreta. Cascas compatíveis com POSIX permitem que as funções sejam exportadas.

O problema que você teve é provavelmente porque você estava usando a palavra-chave function . A sintaxe POSIX não usa function . Remova a palavra-chave function e verifique se você tem parênteses após o nome da função e o login funcionará novamente.

    
por maljub01 19.03.2014 / 12:05