Pse ekzekutimi i set-proxy.sh nuk e ndryshon terminalin tuaj
Një skript i ekzekutuar nuk mund t'i eksportojë variablat përsëri në shell-in prind. Bëni source një skedar konfigurimi të besueshëm kur shell-i aktual duhet t'i mbajë cilësimet.
Skripti juaj përmban rreshtin export https_proxy=... të saktë. E ekzekutoni, dhe komanda tjetër vazhdon të shohë proxy-n e vjetër. Ndoshta skripti ka punuar në mënyrë të përsosur brenda procesit të vet.
Ekzekutimi i një skripti nis një shell të veçantë. Ai mund t'u kalojë variabla komandave që nis, por nuk mund të zëvendësojë mjedisin e shell-it prind të terminalit pasi mbaron.
./set-proxy.sh
. ./set-proxy.sh
Këto janë veprime të ndryshme. E dyta përdor builtin-in dot të shell-it për të lexuar skedarin në shell-in aktual. Bash e quan edhe source; shihni referencën e builtin-eve.
Bëni source vetëm një skedari të cilit i besoni, sepse të gjitha komandat e tij të shell-it ekzekutohen në atë kontekst aktual. Nëse proxy nevojitet vetëm për komandat brenda skriptit, ekzekutimi i zakonshëm është kufiri i saktë. Për një komandë të vetme të jashtme, një caktim proxy i kufizuar në komandë shmang ndryshimin e shell-it aktual.
Mbajini caktimet e variablave fjalë për fjalë. Backtick-et nënkuptojnë zëvendësim komande, jo citim. Një rresht që cakton një proxy nuk duhet të përpiqet aksidentalisht të ekzekutojë URL-në e tij. Për vlerat e destinuara për të zgjedhur një pikë fundore publike, lista e proxy-ve falas ofron kandidatë, protokolli i të cilëve duhet të përputhet me klientin. Së fundi, verifikoni emrat e variablave që lexon klienti real i rrjetit; rregullimi i fushëveprimit të shell-it nuk e bën efektiv një variabël të pambështetur.