Surgem alguns problemas ao tentar recarregar / arquivo de origem ~ / .profile. [Isso se refere ao Ubuntu linux - em alguns casos, os detalhes dos comandos serão diferentes]
- Você está executando isso diretamente no terminal ou em um script?
- Como você executa isso em um script?
De Anúncios. 1)
Executar isso diretamente no terminal significa que não haverá sub-shell criado. Então você pode usar dois comandos:
source ~/.bash_profile
ou
. ~/.bash_profile
Nos dois casos, isso atualizará o ambiente com o conteúdo do arquivo .profile.
Anúncio 2) Você pode iniciar qualquer script bash chamando
sh myscript.sh
ou
. myscript.sh
No primeiro caso, isso criará um subshell que não afetará as variáveis de ambiente do seu sistema e elas serão visíveis apenas para o processo do subshell. Após concluir o comando subshell, nenhuma das exportações, etc. será aplicada. Este é um erro comum e faz com que muitos desenvolvedores percam muito tempo.
Para que suas alterações aplicadas em seu script tenham efeito no ambiente global, o script deve ser executado com
.myscript.sh
comando.
Para garantir que seu script não seja executado em um subshel, você pode usar esta função. (Novamente, o exemplo é para o shell do Ubuntu)
#/bin/bash
preventSubshell(){
if [[ $_ != $0 ]]
then
echo "Script is being sourced"
else
echo "Script is a subshell - please run the script by invoking . script.sh command";
exit 1;
fi
}
Espero que isso elimine alguns dos mal-entendidos comuns! : D Boa Sorte!