Seu script funciona bem. Você só precisa fornecer ao invés de executá-lo :
. local/setenv.sh
Eu quero exportar todas as variáveis localizadas em .conf
. Então segui essa resposta link .
setenv.sh
#!/usr/bin/env bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
set -a
. "$DIR/settings.conf"
set +a
settings.conf
DB_ENV_USER="root"
DB_ENV_PASS="avi"
DB_ENV_NAME="s2s"
TEST_DB_ENV_NAME="testdb"
O que tentei é,
avi:~/project/_backend$
bash local/setenv.sh
avi:~/project/_backend$
echo $DB_ENV_USER
avi:~/project/_backend$
Por isso, não foi possível mostrar $DB_ENV_USER
value root
.
Primeiro você lê o link
O que é a diferença entre o sourcing ('.' ou 'source') e a execução de um arquivo no bash?
então você fonte do script
source local/setenv.sh
Tags bash shell-script