如果您在Bash包含脚本中引入变量,它将在原始环境中可用,并且可能与原始环境冲突。
是否可以防止对原始环境的污染?
来自 virtualenv - bin / activate 和 / etc / bash_completion 脚本:
我看到未设置和唯一的前缀,例如 _LIB 。
将函数包装在函数中并使用非POSIX local 关键字的另一种方法。但是功能名称可能与原始环境冲突。我不知道如何在Bash中创建和调用匿名函数...
答案 0 :(得分:1)
嗯,这一切都取决于你如何执行你的脚本,如果你的目标是确实执行它并扩展你的环境,你没有多少选择而不是使用(
和)
来分叉shell并将所有变量保存在其范围内,或者使用bash脚本末尾的unset
从shell中删除所有不需要的变量。
否则,您可以简单地通过fork“正常”执行脚本,然后在将控制权交还给调用shell时,让所有变量都不会超出被调用范围。
最后,你没有提供足够的背景来为你的问题提供明确而准确的答案......除了一般的建议。