Por que preciso executar o comando source para que o alias .bashrc seja aplicado?

Por que preciso executar o comando source para que o alias .bashrc seja aplicado?

Embora eu entenda que o sourcecomando executa um programa no shell atual, não entendo muito bem por que precisamos executar source .bashrcpara "recarregar" o arquivo .bashrc.

Pelo que entendi, não executamos nenhum script adicionando um alias a .bashrc - source .bashrcapenas "recarregamos" o arquivo.

Por que ele não recarrega automaticamente?

Provavelmente, estou faltando alguma coisa.

Como isso funciona nos bastidores? Por que precisamos sourcedeste arquivo para que novos aliases funcionem sem fazer login?

Responder1

.bashrcé lido apenas uma vez, quando o bash é iniciado. É assim por design (e sempre foi). Se você fizer alterações subsequentes em .bashrc, elas não serão aplicadas até que .bashrcsejam lidas novamente. Ao executar source .bashrc, você faz exatamente isso - diz ao bash para reler esse arquivo.

É claro que você também pode iniciar uma nova cópia do bash (por exemplo, iniciando uma nova sessão de terminal), isso fará com que o novo processo bash leia o .bashrcarquivo novamente (mas não haverá alterações na sessão antiga).

POR FALAR NISSO. .bashrcarquivoéum script e, ao obtê-lo, você executa os comandos colocados nesse arquivo. Os comandos definem aliases no seu caso, mas pode haver praticamente qualquer comando colocado nesse arquivo.

informação relacionada