linux - 使用sudo时如何保留环境变量

当我使用任何带有 sudo 的命令时,环境变量都不存在。例如,在设置 HTTP_PROXY 之后,命令 wget 可以在没有 sudo 的情况下正常工作。但是,如果我输入 sudo wget 它说它不能绕过代理设置。

最佳答案

首先你需要export HTTP_PROXY。其次,您需要阅读man sudo,并查看-E 标志。这有效:

$ export HTTP_PROXY=foof
$ sudo -E bash -c 'echo $HTTP_PROXY'

这是手册页中的引用:

-E, --preserve-env
             Indicates to the security policy that the user wishes to preserve their
             existing environment variables.  The security policy may return an error
             if the user does not have permission to preserve the environment.

https://stackoverflow.com/questions/8633461/

相关文章:

python - Django:显示选择值

python - 从 Numpy 数组 : How do I specify the index c

linux - Bash 忽略特定命令的错误

linux - 如何使用自定义分隔符将多行文件名合并为一个?

python - 如何逐行读取大型文本文件,而不将它们加载到内存中?

python - 在 Python 中获取临时目录的跨平台方法

python - 如何检查变量是否是类?

linux - 更改 crontab 文件后重新启动 cron?

linux - 如何递归查找并列出具有子目录和时间的目录中的最新修改文件

python - 为什么 Python 没有符号函数?