Isso foi problemático.
Necessário para obter o diretório do script em execução que executo usando source
Normalmente, em um script de shell, você pode usar a variável, $0
mas isso muda durante o uso source
.
Bo bian.
Copiei a linha abaixo do ansible , que usa uma configuração semelhante em seu script env-setup:
# When run using source as directed, $0 gets set to bash, so we must use $BASH_SOURCE
if [ -n "$BASH_SOURCE" ] ; then
SETUP_DIR=`dirname $BASH_SOURCE`
else
SETUP_DIR="$PWD"
Isso funciona.