我正在寻找一种方法来在脚本中确定另一个脚本设置了哪些环境变量。设置环境变量的脚本(env.sh
)有各种逻辑来检索这些变量值,我想确定这些值是否从一个版本的存储库更改到另一个版本(但我无法跟踪env.sh
only 的文件内容,因为即使它声明的环境变量发生了变化,它也可能保持不变)。
# main.sh
# Call env.sh to calculate a hash over the environment variables it has set (no idea how)
bash ./env.sh
# env.sh
export foo="foo" # could be changed directly in another version
export bar=`cat barversion` # content in `barversion` itself could change, but not env.sh
# ... more could be added, but we don't want to assume knowledge about this in main.sh
所引用的文件env.sh
可能会发生变化,从而导致导出的环境变量发生变化,进而产生不同的哈希值
# barversion
1.0
bash ./env.sh
理想情况下, in的调用main.sh
实际上并不会污染环境变量范围main.sh
(事实上bash ./env.sh
不需要这样调用。该行只是一个占位符,用来指示我遇到困难的地方)。
任何帮助或正确方向的指示都将不胜感激。