我需要检索调用python程序的父进程( shell)的env变量$PS1
。$PS1
不属于python进程中的os.environ
,sys.ps1
存储自己的提示符。
我们如何将这个变量从shell传递给程序?
我使用:python3 program.py
从shell调用程序。
发布于 2019-03-05 01:17:48
python脚本可以通过os.environ
访问所有环境变量。您的问题是,PS1
不是环境变量,而是shell的局部变量。
这意味着shell不会将它传递给环境中的子程序(您可以通过在shell中键入env
或printenv
来控制它)。因此,除非在启动Python之前手动将其放在环境中(export PS1
表示sh或bash),否则您无法在Python脚本中获得它。
发布于 2019-03-05 01:16:04
如果分配给$PS1
的值在program.py
运行时没有变化,那么最好的选择可能是将其作为参数传递,并使用argparse解析在脚本中检索它。如果值在运行时发生更改,则其中一个选项是将其存储在某个临时文件中并从其中读取。
https://stackoverflow.com/questions/54998956
复制相似问题