在 for 循环中导出多个变量

Exporting multiple variables in a for loop

我在 bash 脚本的 for 循环中导出多个环境变量时遇到问题。

完整的脚本如下所示:

IFS_old="$IFS"
IFS=';'
test_data="secret1='data1';secret2='data2';secret3='data3'"
for secret in $test_data
do
    eval "export $secret"
done
IFS="$IFS_old"

所以输入字符串由变量及其值组成,用分号分隔。 我遍历它并想导出它们中的每一个;但是,导出的变量具有“空”值。

我也试过在一个单独的变量中编写一个完整的命令字符串,并通过 bash -c "$command"eval "$command" 语句执行它,但它没有用。

你能帮我看看哪里出了问题吗?

这很好用。导出的变量是本地变量,仅在脚本结束前可用。当脚本关闭时,它们在 shell 中不再可用。这个是正常的。 如果您在脚本的最后一行写入 bash,它将打开一个新终端,其中包含可用的导出变量。