Use eval
.
Se você tiver sua fonte (em /tmp/other.sh):
a=1
b=2
c=3
E você quer apenas uma parte, você pode usar eval
para obter apenas esses itens (aqui em /tmp/main.sh):
eval $(source /tmp/other.sh;
echo a="$a";
echo b="$b";)
echo a is $a "(expect 1)"
echo b is $b "(expect 2)"
echo c is $c "(expect nothing)"
e executá-lo:
$ bash /tmp/main.sh
a is 1 (expect 1)
b is 2 (expect 2)
c is (expect nothing)
AVISO : executar um eval
ou source
em um script não confiável é muito perigoso. Você está executando um script de shell e esse script pode executar qualquer coisa que você possa fazer sozinho. AVISO