O .bash_profile pode ter origem automática após a mudança?

3

Sempre estou me perguntando se há uma maneira de fazer isso. Não quero digitar source depois de alterar meu .bash_profile o tempo todo.

    
por laike9m 08.02.2015 / 07:55

1 resposta

2

É possível fazer isso automaticamente com um pouco de trabalho usando PROMPT_COMMAND e -nt com um arquivo de marcador. Se você colocar isso no seu arquivo ~/.bash_profile :

touch /tmp/bash_profile-$$
resource_profile() {
    [ ~/.bash_profile -nt /tmp/bash_profile-$$ ] && source ~/.bash_profile
}
PROMPT_COMMAND=resource_profile

então um arquivo marcador vazio será criado em /tmp quando o shell for iniciado, nomeado com o PID do shell para identificá-lo.

Antes de exibir o prompt toda vez que o shell executar a função resource_profile , que verificará se ~/.bash_profile foi alterado ( -nt ) desde a última vez em que foi originado e atualizou o arquivo do marcador e será automaticamente source ~/.bash_profile se tiver mudado. Quando o arquivo é originado, ele atualizará o arquivo do marcador novamente na próxima vez.

Isso não é infalível - dependendo do sistema de arquivos, as alterações feitas logo após o arquivo ser originado podem não ser detectadas. O arquivo só será verificado depois que você executar um comando ou pressionar Enter , que é o mais próximo do imediato possível, mas não completamente instantâneo.

Dependendo do perfil do seu sistema, você pode preferir colocar o arquivo marcador em outro lugar onde ninguém mais possa acessar o diretório. Também é possível construir algo similar fora do stat(1) se você tiver, evitando o arquivo do marcador completamente. / p>     

por 08.02.2015 / 09:37