尝试将 bash 变量从 .sh 文件导出到运行它的另一个文件

cbd*_*per 2 bash environment-variables sh

这是我所拥有的:

script_1.sh

echo "HELLO FROM script_1.sh"

./scripts/script_2.sh

echo $MY_VARIABLE
Run Code Online (Sandbox Code Playgroud)

script_2.sh

echo "HELLO FROM script_2.sh"

export MY_VARIABLE="MY_VALUE"
Run Code Online (Sandbox Code Playgroud)

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

HELLO FROM script_1.sh
HELLO FROM script_2.sh
"" // EMPTY LINE INSTEAD OF "MY_VALUE"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

cho*_*oba 6

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

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

. ./scripts/script_2.sh
Run Code Online (Sandbox Code Playgroud)