sh 'unset http_proxy' binabago ang shell na sinisimulan para sa tawag na iyon. Kapag lumabas ito, ang prosesong Ruby ng Rake ay mayroon pa rin ng orihinal nitong kapaligiran, at ang susunod na tawag na sh ay muling nagmamana nito.

Upang baguhin ang prosesong Ruby para sa susunod na gawain:

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

Nakakaapekto ito sa mga susunod na anak at sa kodigong Ruby na nagbabasa ng mga susi. Hindi nire-reconfigure ang terminal na orihinal na naglunsad ng Rake.

Para sa isang utos ng anak, ibigay nang direkta ang kapaligiran nito:

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

Itinuturing ng interface ng paglunsad ng proseso ng Ruby ang mga halagang nil bilang pagtanggal mula sa kapaligiran ng anak na iyon. Ipinapasa ng Rake ang listahan ng argumento sa interface na iyon, at nananatiling hindi nagbabago ang sarili nitong ENV.

Alisin ang mga susi na may kaugnayan sa aktwal na client. Ang isang operasyong HTTPS ay maaari ring gumamit ng https_proxy, at ang ilang client ay tumitingin sa ALL_PROXY o ibang configuration file. Ang pag-alis ng isang HTTP na susi lamang ay hindi isang pangkalahatang tagubilin sa direktang ruta.

Pinapanatiling hiwalay ng anyong may maraming argumento ang mga argumento ng executable. Hindi kailangang bumuo ng shell string na naglalaman ng utos na tanggalin at isang URL.

Kaugnay na mga artikulo