环境变量无法在 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

首先你阅读链接

采购(“.”或“源”)和在 bash 中执行文件有什么区别?

然后你获取脚本

source local/setenv.sh

相关内容