Estou fazendo alguns testes executando um script bash como /home/travis/test_build.sh . Eu tenho um script separado checkout.sh que define as variáveis ambientais (e eu não posso chamá-lo antes do test_build.sh). Então, dentro de /home/travis/test_build.sh i fonte dele: . ./checkout.sh . Mas depois da execução de checkout.sh usando echo eu vejo que as variáveis são setadas de volta para os valores iniciais (vazios). Existe uma maneira de consertar isso?
Exemplo curto de /home/travis/test_build.sh
#!/bin/bash
echo "what is 0: $0"
set -x
. ./checkout.sh
echo "COMP_ARCH=$COMP_ARCH"
echo "FRAME_BASE=$FRAME_BASE"
Exemplo curto de checkout.sh :
#!/bin/bash
echo "what is 0: $0"
set -e
export COMP_ARCH=slc6_amd64_gcc493
eval 'scramv1 runtime -sh' # link scramv1 is set to some other script which is not mine, starts with '#!/bin/sh' and which is supposed to set some additional variables as FRAME_BASE
echo "COMP_ARCH=$COMP_ARCH"
echo "FRAME_BASE=$FRAME_BASE"
A saída após a execução de /home/travis/test_build.sh seria então:
what is 0: /home/travis/test_build.sh
what is 0: /home/travis/test_build.sh
COMP_ARCH=slc6_amd64_gcc493
FRAME_BASE=/home/1234/wer/base
COMP_ARCH=slc6_amd64_gcc493
FRAME_BASE=