O arquivo profile
é sempre executado pelo shell de login, e se você deseja que outros scripts sejam originados pelo shell de login, você os menciona em profile
Se eu alterar meu shell com chsh
para um shell que eu mesmo escrevi, quais scripts ele precisa executar? Eu já tentei mudar para o meu próprio shell e surpreendentemente funcionou sem uma mensagem de erro. Isso significa que o shell de login decide quais scripts devem ser executados e não há script que o shell de login deve executar?
Eu achava que .login ou .aliases ou similares eram sempre executados.
O arquivo profile
é sempre executado pelo shell de login, e se você deseja que outros scripts sejam originados pelo shell de login, você os menciona em profile
Depende do design do seu shell.
Ele segue o padrão POSIX?
Se Sim, então seu shell precisa ler a variável de ambiente ENV
no início de qualquer sessão interativa e ler / executar o conteúdo do (s) arquivo (s) a que a variável ENV
se refere. Nenhum outro arquivo precisa ser lido de acordo com o padrão. Este é um mínimo para a conformação POSIX no que diz respeito à leitura de arquivos durante a inicialização.
E a personalização?
O problema é que a maioria dos shells hoje em dia usa arquivos específicos para ler / source / executar enquanto inicia uma sessão. Arquivos diferem para vários tipos de sessão. Por exemplo, bash
origina os arquivos /etc/profile
e um de ~/.bash_profile
, ~/.bash_login
, ~/.profile
(primeiro disponível após o pedido) ao iniciar uma sessão interativa de login. Os shells mais populares também fazem isso, mas novamente essa é uma decisão de design, não um padrão.
Tags command-line scripts login