Variáveis ​​​​env falharam ao carregar no bash

Variáveis ​​​​env falharam ao carregar no bash

Quero exportar todas as variáveis ​​localizadas em um arquivo .conf. Então eu segui issohttps://unix.stackexchange.com/a/79077/56901responder.

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 eu tentei é,

avi:~/project/_backend$
bash local/setenv.sh
avi:~/project/_backend$
echo $DB_ENV_USER

avi:~/project/_backend$

Portanto, não conseguiu mostrar $DB_ENV_USERvalor root.

Responder1

Seu script funciona perfeitamente. Você só tem defonteisso em vez decorrendoisto:

. local/setenv.sh

Responder2

Primeiro você leu o link

Qual é a diferença entre sourcing ('.' ou 'source') e executar um arquivo no bash?

então você fornece o script

source local/setenv.sh

informação relacionada