Respostas:
Não, acho que isso não é possível. Nem deveria ser. Basicamente, isso representaria uma maneira de injetar código em um shell já iniciado e ativo e representaria uma ameaça significativa à segurança.
Muitos processos daemon são projetados para fazer isso. A maneira típica seria enviar a eles o sinal HUP (hangup), que os leva a reiniciar depois de reler seus arquivos de configuração. Você pode acionar isso com algo como:
pkill -HUP daemon_name
No entanto, ao fazer isso no bash, o bash é desligado. Não é um daemon e o sistema não se comporta como um.
O longo e o curto é que você provavelmente não continuará fazendo alterações no seu bashrc com tanta frequência com o passar do tempo e isso não será um problema. Quando você faz alterações, você apenas precisará refazer a fonte do arquivo se precisar das alterações na execução de shells.
Não há nada incorporado ao bash. Você pode dizer para talvez recarregar .bashrcsempre que exibir um prompt, até PROMPT_COMMAND.
## Create a timestamp file, dated like the .bashrc that was read.
## There is a small race condition: if .bashrc is modified as the shell is
## just starting, before getting to this line, this instance won't detect
## that modification.
bashrc_timestamp_file=~/.bashrc-timestamp-$$
touch -r ~/.bashrc "$bashrc_timestamp_file"
## Remove the timestamp file on exit. The timestamp file will be left
## behind on a crash.
trap 'rm "$bashrc_timestamp_file"' EXIT HUP TERM INT QUIT
maybe_reload_bashrc () {
if [[ ~/.bashrc -nt $bashrc_timestamp_file ]]; then
. ~/.bashrc
fi
}
if [[ $PROMPT_COMMAND != *maybe_reload_bashrc* ]]; then
PROMPT_COMMAND="maybe_reload_bashrc
$PROMPT_COMMAND"
fi
É um monte de problemas que um arquivo extra acessa pelo que vale a pena. Além disso, isso restringe o seu .bashrc: o arquivo deve ser idempotente, ou seja, você deve poder carregá-lo mais de uma vez sem causar efeitos negativos. Por exemplo, no trecho acima, eu tomo o cuidado de acrescentar maybe_reload_bashrcque PROMPT_COMMANDsomente se ele não está lá já.
touch -r ~/.bashrc $bashrc_timestamp_fileapós a fonte ~/.bashrc. Na verdade, eu quase escrevi isso, mas não é necessário: foi feito apenas pelo fornecedor .bashrc. O arquivo de carimbo de data e hora é atualizado sempre que .bashrccarregado, não apenas no carregamento inicial.