Este é apenas um palpite, mas os cronogramas do projeto sugerem que é para compatibilidade com versões anteriores do Lynx, que antecede o curl em alguns anos (e que usa variáveis de proxy em minúsculas).
Eu sei que no unix / linux as variáveis do ambiente são maiúsculas, como LD_LIBRARY_PATH ; HOME ; $USER
e assim por diante. Hoje jogando com o wget eu vi este comando apenas usa variáveis de ambiente em minúsculas:
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
Por que wget não lê HTTP_PROXY
em formato de letras maiúsculas?
Resposta curta: Infelizmente, programas diferentes usam variáveis env
diferentes.
Resposta longa, de ( link ):
No passado, criei um script simples que define as duas versões (todas em maiúsculas e versões "regulares" para ativá-las e desativá-las facilmente, e parece que essa é uma maneira comum de fazer as coisas, se necessário feito viaSome programs (like wget) use environment variables of the form "protocol_proxy" to determine the proxy for a given protocol. (...) Some programs look for the all caps version of the environment variables.
env
variables.
O Unix faz distinção entre maiúsculas e minúsculas. O que significa que $ http_proxy e $ HTTP_PROXY são duas variáveis diferentes.
Veja isso:
user@foo[~]+ xx=2 user@foo[~]+ echo $xx 2 user@foo[~]+ echo $XX user@foo[~]+
Tags networking linux redhat http sles