Το σενάριό σας περιέχει τη σωστή γραμμή export https_proxy=.... Το εκτελείτε και η επόμενη εντολή εξακολουθεί να βλέπει το παλιό proxy. Το σενάριο μπορεί να λειτούργησε άψογα μέσα στη δική του διεργασία.

Η εκτέλεση ενός σεναρίου ξεκινά ένα ξεχωριστό shell. Μπορεί να περάσει μεταβλητές στις εντολές που ξεκινά, αλλά δεν μπορεί να αντικαταστήσει το περιβάλλον του γονικού shell του τερματικού μετά την έξοδό του.

./set-proxy.sh
. ./set-proxy.sh

Πρόκειται για διαφορετικές πράξεις. Η δεύτερη χρησιμοποιεί το ενσωματωμένο dot του shell για να διαβάσει το αρχείο στο τρέχον shell. Το Bash το ονομάζει επίσης source· δείτε την αναφορά ενσωματωμένων.

Κάντε source μόνο ένα αρχείο που εμπιστεύεστε, γιατί όλες οι εντολές shell του εκτελούνται σε αυτό το τρέχον περιβάλλον. Αν το proxy χρειάζεται μόνο για εντολές μέσα στο σενάριο, η συνηθισμένη εκτέλεση είναι το σωστό όριο. Για μία μόνο εξωτερική εντολή, μια ανάθεση proxy περιορισμένη στην εντολή αποφεύγει την αλλαγή του τρέχοντος shell.

Κρατήστε τις αναθέσεις μεταβλητών κυριολεκτικές. Τα backticks σημαίνουν υποκατάσταση εντολής, όχι παράθεση. Μια γραμμή που αναθέτει proxy δεν πρέπει κατά λάθος να προσπαθεί να εκτελέσει το URL της. Για τιμές που προορίζονται να επιλέξουν δημόσιο τελικό σημείο, η λίστα δωρεάν proxy παρέχει υποψήφια των οποίων το πρωτόκολλο πρέπει να ταιριάζει με τον πελάτη. Τέλος, επαληθεύστε τα ονόματα μεταβλητών που διαβάζει ο πραγματικός πελάτης δικτύου· η διόρθωση του εύρους του shell δεν κάνει μια μη υποστηριζόμενη μεταβλητή αποτελεσματική.

Σχετικά άρθρα