【发布时间】:2019-02-27 00:01:17
【问题描述】:
我想为终端会话的范围设置环境变量。
例如,用户打开一个终端,输入类似setproject <project_name> 的内容,它会导出一个环境变量PROJECT。当他们关闭终端时,变量设置会丢失。这个系统令人印象深刻的是,它会知道什么项目名称是有效的,什么是无效的。我曾在做得很好的地方工作过,我想知道它是如何完成的。
我希望用户不必输入source setproject <project_name>,并且我还想检查他们指定的项目是否有效。
我在 python 中编写了一些东西,它检查项目名称的有效性(针对 yaml 配置文件),并将其传递给 bash 脚本,但它并没有真正起作用(环境变量不是正确设置。已设置,但仅适用于 python 脚本的范围)
那么,我是怎么做到的?我在网上寻找的东西有什么好的例子吗?
【问题讨论】:
-
如果用户不调用命令,例如
source,系统如何知道PROJECT使用什么设置? -
环境变量是为 process 及其子进程的范围设置的,而不是为共享同一终端会话的进程设置的。所以使用像 python 这样的另一种语言进程永远无法工作。
-
这是我的想法,所以它需要是一个 bash 脚本?
标签: python bash variables environment-variables environment