如何在Python中使用subprocess访问Bash环境变量?
我可以通过一个用 subprocess-handled
的方法来获取终端的宽度,像下面这样:
int(subprocess.Popen(['tput', 'cols'], stdout = subprocess.PIPE).communicate()[0].strip('\n'))
那么,我该如何以类似的方式获取 Bash 用户名呢?也就是说,我怎样才能在 Python 中使用 subprocess 查看 ${USER}
的值呢?
1 个回答
5
正如Wooble和dano所说,不要用subprocess来做这个。可以直接用 os.getenv("USER")
或者 os.environ["USER"]
来获取用户信息。
如果你真的想用 subprocess
,那么 Popen(['bash', '-c', 'echo "$USER"'], ...)
这个方法可以用, Popen("echo $USER", shell=True)
也可以,不过这两种方法都不是特别好用(因为要在执行的命令行中使用环境变量,就必须用到shell,所以这点是无法避免的)。
补充:我之前提到的subprocess方法似乎没有正确工作。我觉得我最开始的测试有问题。