首页 > 解决方案 > 尝试将 bash 变量从 .sh 文件导出到另一个运行它的文件

问题描述

这是我所拥有的:

script_1.sh

echo "HELLO FROM script_1.sh"

./scripts/script_2.sh

echo $MY_VARIABLE

脚本_2.sh

echo "HELLO FROM script_2.sh"

export MY_VARIABLE="MY_VALUE"

这是我运行script_1.sh时记录的内容:

HELLO FROM script_1.sh
HELLO FROM script_2.sh
"" // EMPTY LINE INSTEAD OF "MY_VALUE"

我究竟做错了什么?

标签: bashenvironment-variablessh

解决方案


变量从父级导出到子级,反之亦然。script_2.sh在不同的 shell 中调用,其环境不会传播回父 shell。

获取脚本(使用.)以在同一个 shell 中调用它。然后,您甚至不需要导出该值。

. ./scripts/script_2.sh

推荐阅读