该站点http://www.tldp.org/LDP/abs/html/gotchas.html#PARCHILDPROBREF表明脚本无法更改其父级的环境变量。
因此,(除非脚本是来源的)脚本不能意外更改其父环境中巧合命名的环境变量。
但是,如果程序依赖于它声明的环境变量,则可能会发生命名空间冲突。
例如,假设我不知道 vim 使用环境变量名称“VIMRUNTIME”。而且,巧合的是,我碰巧将该环境变量名称用于我自己的、不相关的目的。然后 vim 会从 VIMRUNTIME 环境变量中获取垃圾。
是否有任何机制或标准的、众所周知的命名约定来避免这种类型的命名空间冲突?当然,我可以做一些事情,比如用某种前缀命名我所有的环境变量。但我想知道是否有任何众所周知的正式标准。或者,我还没有找到 Bash 中的某种命名空间机制吗?鼓励在评论中提出有关其他相关问题的建议。