Linux

為什麼 wget 不以大寫格式讀取 HTTP_PROXY?

  • October 14, 2014

我知道在 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):

一些程序(如 wget)使用“protocol_proxy”形式的環境變數來確定給定協議的代理。(…) 一些程序會查找環境變數的全大寫版本。

env過去,我製作了一個簡單的腳本來設置兩個版本(所有大寫和“正常”版本以輕鬆打開和關閉它們,如果必須通過變數完成,這似乎是一種常見的做事方式.

引用自:https://serverfault.com/questions/571887