我知道在 unix/linux 环境变量是大写的,LD_LIBRARY_PATH ; HOME ; $USER
等等。今天玩 wget 我看到这个命令只使用小写环境变量:
env | grep -i proxy
http_proxy=http://10.0.0.120:8080
wget -q http://google.it
echo $?
0
unset http_proxy
export HTTP_PROXY=http://10.0.0.120:8080
wget -q http://google.it
echo $?
1
为什么 wget 不HTTP_PROXY
以大写格式读取?
这只是一个猜测,但项目时间表表明它是为了向后兼容 Lynx,它早于 curl 几年(并且使用小写代理变量)。
简短的回答:不幸的是,不同的程序使用不同的
env
变量。长答案,来自(https://wiki.archlinux.org/index.php/proxy_settings#Environment_variables):
env
过去,我制作了一个简单的脚本来设置两个版本(所有大写和“常规”版本以轻松打开和关闭它们,如果必须通过变量完成,这似乎是一种常见的做事方式.Unix 区分大小写。这意味着 $http_proxy 和 $HTTP_PROXY 是两个不同的变量。
看这个: