gpt4 book ai didi

linux - 导出在另一个文件中定义的变量

转载 作者:IT王子 更新时间:2023-10-29 00:23:11 25 4
gpt4 key购买 nike

我有一个脚本,其中包含几个需要设置为环境变量的变量

变量列表不断变化,我无法修改它。知道我会怎么做吗?

示例文件 foo.sh

FOO="FOOFOO"
BAR="BARBAR"

最佳答案

变量和环境变量是有区别的。如果你执行 。 foo.shfoo.sh 包含 FOO=value 行,则变量 FOO 将在当前进程中赋值.它不是环境变量。要成为一个环境变量(因此可用于子 shell),它必须被导出。但是,shell 提供了一个选项,可以让所有变量赋值都将变量提升为环境变量,因此如果您只是这样做:

set -a
. foo.sh
set +a

那么foo.sh中的所有变量赋值都会成为当前进程中的环境变量。请注意,这并非完全正确:在 bash 中,导出变量使其成为当前 shell 中的环境变量,但在其他 shell(例如 dash)中,导出变量不会使其成为当前 shell 中的环境变量。 (但是,它确实会导致在子 shell 的环境中设置它。)但是,在 shell 的上下文中,变量是否是当前进程中的环境变量并不重要。如果它被导出(因此在任何子流程的环境中设置),则不在环境中的变量在功能上等同于环境变量。

关于linux - 导出在另一个文件中定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14904142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com