sh 'unset http_proxy' megváltoztatja az adott híváshoz indított shellt. Amikor kilép, a Rake Ruby-folyamata még mindig az eredeti környezetét használja, és egy későbbi sh-hívás újra örökli azt.

A Ruby-folyamat módosításához a további munkához:

ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')

Ez hatással van a későbbi gyermekekre és az ezeket a kulcsokat olvasó Ruby-kódra. Nem konfigurálja újra azt a terminált, amely eredetileg elindította a Rake-et.

Egyetlen gyermekparancshoz adja meg közvetlenül a környezetét:

sh(
  { 'http_proxy' => nil, 'HTTP_PROXY' => nil },
  'ruby', 'download.rb'
)

A Ruby folyamatindító felülete a nil értékeket az adott gyermek környezetéből való eltávolításként kezeli. A Rake átadja az argumentumlistát ennek a felületnek, saját ENV-jét változatlanul hagyva.

Távolítsa el a tényleges ügyfél szempontjából releváns kulcsokat. Egy HTTPS-művelet https_proxyt is fogyaszthat, és egyes ügyfelek az ALL_PROXY-t vagy egy másik konfigurációs fájlt olvassák. Egyetlen HTTP-kulcs eltávolítása nem univerzális közvetlen útvonalra vonatkozó utasítás.

A többargumentumos forma elkülönítve tartja a futtatható fájl argumentumait. Nem kell olyan shell-karakterláncot építeni, amely eltávolítási parancsot és URL-t tartalmaz.

Kapcsolódó cikkek