bash에 환경 변수를 로드할 수 없습니다.

bash에 환경 변수를 로드할 수 없습니다.

에 위치하여 내보내고 싶습니다 .conf. 그래서 이것을 따랐습니다.https://unix.stackexchange.com/a/79077/56901답변.

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"

내가 시도한 것은,

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

avi:~/project/_backend$

$DB_ENV_USER그래서 가치를 반영하지 못합니다 root.

답변1

스크립트가 정상적으로 실행됩니다. 당신은 단지 필요원천대신에달리기그것:

. local/setenv.sh

답변2

먼저 링크를 읽어보세요

소싱("." 또는 "source")과 bash에서 파일 실행의 차이점은 무엇입니까?

그런 다음 스크립트를 얻습니다.

source local/setenv.sh

관련 정보