Spotkałem oba http_proxy
i HTTP_PROXY
. Czy obie formy są równoważne? Czy jeden z nich ma pierwszeństwo przed drugim?
Spotkałem oba http_proxy
i HTTP_PROXY
. Czy obie formy są równoważne? Czy jeden z nich ma pierwszeństwo przed drugim?
Nie ma organu centralnego, który przypisywałby oficjalne znaczenie zmiennym środowiskowym, zanim aplikacje będą mogły ich użyć. POSIX definiuje znaczenie niektórych zmiennych ( PATH
, TERM
, ...) i kilka innych list w nienormatywnej sposób jako w powszechnym użyciu, wszystkie z nich wielkimi literami. http_proxy
i przyjaciele nie są jednym z nich.
W przeciwieństwie do praktycznie wszystkich typowych zmiennych środowiskowych używanych przez wielu zastosowaniach http_proxy
, https_proxy
, ftp_proxy
i no_proxy
są zwykle małe. Nie przypominam sobie żadnego programu, który rozumie je tylko dużymi literami, nie mogę nawet znaleźć takiego, który wypróbuje je dużymi literami. Wiele programów używa tylko małych liter, w tym rysi, wget, curl, perl LWP, perl WWW :: Search, python urllib / urllib2 itd. Tak więc w przypadku tych zmiennych odpowiednia forma to mała litera.
Nazwa pisana małymi literami pochodzi przynajmniej od CERN libwww 2.15 w marcu 1994 r. (Podziękowania dla Stéphane'a Chazelasa za odnalezienie tego). Nie wiem, co uzasadniało wybór małych liter, co nawet wtedy byłoby niezwykłe.
Unlike basically all conventional environment variables used by many applications, http_proxy, https_proxy, ftp_proxy and no_proxy are commonly lowercase. I don't recall any program that only understands them in uppercase
-> Dla przypomnienia, właśnie dowiedziałem się, że doker 17.04.0-ce honoruje tylko NO_PROXY.HTTPS_PROXY
. doker używa również wariantu wielkich liter.sudo -E apt-add-repository ppa:xxxxx/xxxx
. musiałemunset https_proxy
iexport HTTPS_PROXY=http://a.b.c.d:xxxx
Nie ma standardu, w zależności od aplikacji używane są zarówno wielkie, jak i małe wersje (patrz także HTTPS_PROXY, ALL_PROXY, NO_PROXY).
Na przykład:
kędzior
git
Pyton
urllib.request.getproxies()
obsługuje zarówno małe, jak i wielkie litery.Wspomina także o problemie bezpieczeństwa:
Niektóre aplikacje pozwalają
NO_PROXY
zawierać gwiazdki / zakresy ip, podczas gdy inne nie.Więc
powinien cię objąć.
źródło
Konwencja polega na użyciu wszystkich zmiennych środowiskowych capps podczas ich eksportowania, dzięki czemu podczas pisania skryptów powłoki można używać nazw zmiennych pisanych małymi literami, nie martwiąc się o kolizje nazw z innymi programami. Oczywiście jest to tylko konwencja, nie ma technicznych ograniczeń w ograniczaniu nazw zmiennych środowiskowych, więc w niektórych przypadkach można używać wersji z małymi literami, ale najlepszą praktyką jest stosowanie wielkich liter i pamiętaj, że rozróżniają małe i duże litery, aby mogły mieć różne wartości.
źródło
http_proxy
a jego rodzeństwo jest zwykle pisane małymi literami.http_proxy
i przyjaciół ma być pisany małymi literami, z naruszeniem konwencji. Zastosowanie aplikacjiHTTP_PROXY
byłoby błędem, ponieważ byłoby niezgodne z resztą świata.WGET - używa tylko małych ustawień proxy!
źródło
Zarówno
http_proxy
iHTTP_PROXY
powinien działać na systemach RHEL i ubuntu oparty.źródło