我知道在Unix / Linux的环境variables是大写,如LD_LIBRARY_PATH ; HOME ; $USER LD_LIBRARY_PATH ; HOME ; $USER LD_LIBRARY_PATH ; HOME ; $USER等等。 今天玩wget我看到这个命令只是使用小写的环境variables:
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向后兼容,Lynx早于几年(并使用小写代理variables)。
简短的回答:不幸的是,不同的程序使用不同的envvariables。
很长的答案,从( https://wiki.archlinux.org/index.php/proxy_settings#Environment_variables ):
某些程序(如wget)使用“protocol_proxy”forms的环境variables来确定给定协议的代理。 (…)一些程序寻找环境variables的全部大写版本。
在过去,我已经做了一个简单的脚本来设置两个版本(所有上限和“常规”版本可以方便地打开和closures它们,而且如果必须通过envvariables。
Unix区分大小写。 这意味着$ http_proxy和$ HTTP_PROXY是两个不同的variables。
看这个:
user @ foo [〜] + xx = 2 user @ foo [〜] + echo $ xx 2 user @ foo [〜] + echo $ XX 用户@ FOO [〜] +