在bash脚本中导出环境变量(env var)不会影响环境的原因是因为脚本在单独的子进程中运行,而子进程无法修改父进程的环境变量。
当我们在bash脚本中使用export
命令导出一个环境变量时,实际上是将该变量添加到当前脚本进程的环境中。这意味着该变量只在当前脚本进程及其子进程中可见,而不会影响到父进程或其他兄弟进程。
当脚本执行完毕后,脚本进程及其子进程会被销毁,导出的环境变量也随之消失。因此,即使在脚本中导出了环境变量,对于其他终端会话或进程来说,这些变量仍然是不可见的。
如果我们希望在脚本执行后,导出的环境变量仍然对整个系统可见,可以考虑使用source
命令或.
运算符来运行脚本。这样脚本将在当前shell进程中执行,而不是创建一个新的子进程,从而可以修改当前shell进程的环境变量。
总结起来,bash脚本中导出的环境变量只在当前脚本进程及其子进程中可见,不会影响到父进程或其他兄弟进程。如果希望导出的环境变量对整个系统可见,可以使用source
命令或.
运算符来运行脚本。
腾讯云相关产品和产品介绍链接地址:
- 腾讯云产品:云服务器(https://cloud.tencent.com/product/cvm)
- 腾讯云产品:云函数(https://cloud.tencent.com/product/scf)
- 腾讯云产品:容器服务(https://cloud.tencent.com/product/tke)
- 腾讯云产品:弹性伸缩(https://cloud.tencent.com/product/as)
- 腾讯云产品:云数据库 MySQL 版(https://cloud.tencent.com/product/cdb_mysql)
- 腾讯云产品:云存储(https://cloud.tencent.com/product/cos)
- 腾讯云产品:人工智能(https://cloud.tencent.com/product/ai)
- 腾讯云产品:物联网通信(https://cloud.tencent.com/product/iotexplorer)
- 腾讯云产品:移动推送(https://cloud.tencent.com/product/umeng_push)
- 腾讯云产品:区块链服务(https://cloud.tencent.com/product/baas)
- 腾讯云产品:元宇宙(https://cloud.tencent.com/product/metaspace)