Além de questões de segurança, espero que você perceba os riscos de executar scripts externos. Isso pode ser feito pela combinação do comando wget
e source
(dot)
. <(wget -q -O- http://scripts.programster.org/scripts/1?output=raw)
Isso significa fornecer o texto do script para o shell atual
wget -O-
faz download ot STDOUT, -q
faz com que fique quieto (livre de mensagens)
<(any command)
é a substituição do processo que permite interpretar a saída como um arquivo
P.S. curl - equivalente para wget -q -O-
is curl -s -o-
UPDATE
Os exemplos acima não farão uso do she-bang do script externo, mas serão executados no contexto do shell de chamada. Para fazer uso da linha she-bang, um tem que salvar o arquivo, tornar executável e só depois executá-lo.
Você pode usar mktemp
, o que garantirá nomes não exclusivos, então você terá que remover arquivos temporários. Isso pode ser combinado em um wrapper que usaria o URL externo como parâmetro
Aqui está um exemplo de código de trabalho para esse tipo de wrapper
#/bin/bash
exturl=${1?"No external url specified"}
tmpexe=$(mktemp)
trap 'rm $tmpexe' EXIT
curl -s $exturl -o $tmpexe
chmod 0755 $tmpexe
$tmpexe