Python中如何区分预定义与启动时定义的环境变量并记录启动命令?
背景
为便于解释,我们定义两种环境变量(需说明现实中并无此区分):
- 「预定义变量」:脚本启动时已存在于环境中的变量;
- 「启动时定义的变量」:在脚本调用行内定义的变量,仅适用于启动脚本时创建的进程环境。
示例如下:
预定义变量
export var1="value1" export var2="value2" # ... more commands # Now var1 and var3 are in the python process' environment python script.py args
启动时定义的变量
var1="value1" var2="value2" python script.py args
问题描述
我可以通过os.environ在Python脚本中访问环境变量,但希望能在代码中区分「预定义变量」和「启动时定义的变量」。
我的使用场景是:当通过var1="value1" var2="value2" python script.py args这种方式启动脚本时,希望记录shell提示符中输入的完整命令,包括:
- 脚本名称
- 脚本参数
- 命令前定义的环境变量(
var1和var2)
前两项可通过sys.argv实现,但目前无法区分预定义变量与启动时定义的var1、var2。
补充说明
添加了背景内容以明确需求。
内容的提问来源于stack exchange,提问作者IvanProsperi94
相关产品推荐
相关产品推荐

