Que tal usar eval "$(curl "$URL")"
?
Mas é melhor você ter certeza de obter o URL correto, e o código baixado não faz nada desagradável.
Eu tenho um arquivo f no meu servidor com o seguinte conteúdo:
alias ll='ls -l'
Eu gostaria de (a partir de outra caixa linux) fazer o seguinte, mas não consigo acertar o comando:
curl http://myserver/f | ?
Onde o? lerá cada linha no ambiente atual. Então, dado o arquivo acima, isso teria o mesmo efeito que fazer
% alias ll='ls -l'
no processo de shell atual. Isso é possível?
No Bash, você pode tentar acessar /dev/stdin
depois de redirecionar a saída do comando curl
para /dev/stdin
em uma única linha da seguinte forma:
source /dev/stdin <<< "$(curl http://myserver/f)"
Isso deve evitar a atribuição de variáveis (originadas) em um subshell (que seria invisível pelo shell pai).
Para evitar problemas desagradáveis com eval
, você pode salvá-lo em um arquivo e, em seguida, fornecê-lo:
curl -O f http://myserver/f
chmod u+x f
. f