gpt4 book ai didi

linux - 是否有任何标准机制或约定来防止 Bash 环境变量名称冲突?

转载 作者:IT王子 更新时间:2023-10-29 01:19:34 24 4
gpt4 key购买 nike

本站http://www.tldp.org/LDP/abs/html/gotchas.html#PARCHILDPROBREF表示脚本不能更改其父级的环境变量。

因此,(除非脚本是源代码)脚本不会意外更改其父环境中巧合命名的环境变量。

但是,如果程序依赖于它声明的环境变量,则可能会发生命名空间冲突。

例如假设我不知道 vim 使用环境变量名称“VIMRUNTIME”。而且,巧合的是,我碰巧将该环境变量名称用于我自己的、无关的目的。然后 vim 将从 VIMRUNTIME 环境变量中获取垃圾。

是否有任何机制或标准的、众所周知的命名约定来避免这种类型的 namespace 冲突?当然,我可以做一些事情,比如用某种前缀命名我的所有环境变量。但我想知道是否有任何众所周知的正式标准。或者,在 Bash 中是否有某种我没有找到的命名空间机制?鼓励在评论中提出有关其他相关问题的建议。

最佳答案

除了使用通用前缀外,我认为没有任何标准机制。例如,sshSSH_xxx 用于其所有环境变量。不幸的是,许多遗留程序(例如 shell)不遵循任何类型的约定。许多不同程序中使用的变量(例如 TERMPAGER)没有程序名称用作前缀。

如果遵循前缀样式,碰撞的几率会很小。这是你能做的最好的。

关于linux - 是否有任何标准机制或约定来防止 Bash 环境变量名称冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17330056/

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