python如何获得所有os env?
我的python脚本无法在aws codebuild中运行ubuntu 16容器内获取所有env变量
for item, value in os.environ.items():
print('{}: {}'.format(item, value))
这些是python脚本获得的env变量:
SUDO_UID: 0
USER: root
HOME: /root
SUDO_USER: root
PATH:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
SUDO_COMMAND: /usr/bin/python3 get-env.py
SHELL: /bin/bash
USERNAME: root
TERM: xterm
LANG: C.UTF-8
HOSTNAME: 53f187197b9e
LC_ALL: C.UTF-8
MAIL: /var/mail/root
LOGNAME: root
这些是命令printenv得到的env变量的一部分:
MAVEN_OPTS=-Dmaven.wagon.httpconnectionManager.maxPerRoute=2
CODEBUILD_LAST_EXIT=0
CODEBUILD_START_TIME=1552450745205
CODEBUILD_AGENT_ENDPOINT=http://127.0.0.1:7831
HOSTNAME=53f187197b9e
SHLVL=1
HOME=/root
AWS_EXECUTION_ENV=AWS_ECS_EC2
FPM_MAX_CHILDREN=32
NGINX_LOG_PATH=/var/log/nginx
COMPOSER_HOME=/root/composer
VERSION=0.7.0
COMPOSER_ALLOW_SUPERUSER=1
TERM=xterm
FPM_MAX_REQUEST=1024
.....
我试图使用export命令,但它没有用
我找到了!因为一些环境变量是安全的,所以python不能直接打印它们,但仍然使用它们。
我们可以在bitbucket管道变量示例中看到它。
如果你有一个文件中的变量说file.sh
你可以尝试通过. file.sh
或bettter导出你可以尝试dotenv效果很好
我想知道这是否是基于您正在显示的环境变量运行sudo命令的结果。
如果是这样,您是否尝试使用sudo -E
运行它以将用户的环境传递给由sudo运行的命令?