Usando curl
como em:
bash <(curl -s https://raw.githubusercontent.com/user/repo/master/script.sh | tr -d '\r')
Eu executei algum script remoto.
O script remoto inclui os dois aspectos a seguir:
1) O comando:
wget -P ~/myAddons/ https://raw.githubusercontent.com/user/repo/master/appendix.sh
2) um source ~/myAddons/appendix.sh
comando:
Este arquivo appendix.sh
inclui alguns aliases Bash.
O problema
Depois de executar o script remoto, tentei usar alguns aliases de appendix.sh
. Nenhum funcionou.
Somente após a execução manual source ~/myAddons/appendix.sh
, os aliases funcionaram.
- Eu verifiquei pelo menos 3 vezes se o comando do script remoto
source
e o comando manual são os mesmos.
A questão
Por que a execução source ~/myAddons/appendix.sh
diretamente do script remoto falhou, enquanto manualmente funcionou e qual é a maneira certa de lidar com isso?
Você está iniciando um novo shell
bash <(...)
e, em seguida, sourcing dentro dele. Isso não afetará o shell original do qual você executoubash <(...)
. Em vez disso , você devesource
processar a substituição: