set-proxy.sh işə salmaq terminalınızı niyə dəyişmir
İcra olunan skript dəyişənləri valideyn shell-ə geri ixrac edə bilməz. Cari shell parametrləri saxlamalı olduqda etibarlı konfiqurasiya faylını source edin.
Skriptinizdə düzgün export https_proxy=... sətri var. Onu işə salırsınız, sonra növbəti əmr hələ də köhnə proxy-ni görür. Skript öz prosesi daxilində mükəmməl işləmiş ola bilər.
Skriptin icrası ayrı bir shell başladır. O, başlatdığı əmrlərə dəyişənlər ötürə bilər, lakin çıxdıqdan sonra valideyn terminal shell-inin mühitini əvəz edə bilməz.
./set-proxy.sh
. ./set-proxy.sh
Bunlar fərqli əməliyyatlardır. İkincisi faylı cari shell-də oxumaq üçün shell-in dot daxili əmrindən istifadə edir. Bash bunu həm də source adlandırır; daxili əmr arayışına baxın.
Yalnız etibar etdiyiniz faylı source edin, çünki onun bütün shell əmrləri həmin cari kontekstdə işləyir. Proxy yalnız skript daxilindəki əmrlər üçün lazımdırsa, adi icra düzgün sərhəddir. Tək xarici əmr üçün əmrlə məhdudlaşdırılmış proxy təyinatı cari shell-i dəyişməkdən qaçınır.
Dəyişən təyinatlarını hərfi saxlayın. Backtick-lər əmr əvəzləməsi deməkdir, sitat deyil. Proxy təyin edən sətir təsadüfən URL-ni icra etməyə çalışmamalıdır. İctimai son nöqtə seçmək üçün nəzərdə tutulan dəyərlər üçün pulsuz proxy siyahısı protokolu müştəri ilə uyğun olmalı namizədlər təqdim edir. Nəhayət, faktiki şəbəkə müştərisinin oxuduğu dəyişən adlarını yoxlayın; shell əhatəsini düzəltmək dəstəklənməyən dəyişəni effektiv etmir.