Skrip Anda berisi baris export https_proxy=... yang benar. Anda menjalankannya, lalu perintah berikutnya masih melihat proxy lama. Mungkin skrip itu bekerja sempurna di dalam prosesnya sendiri.

Menjalankan skrip memulai shell terpisah. Shell itu dapat meneruskan variabel ke perintah yang dijalankannya, tetapi tidak dapat menggantikan lingkungan shell induk terminal setelah keluar.

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

Keduanya operasi berbeda. Yang kedua memakai builtin dot shell untuk membaca file di shell saat ini. Bash juga menyebutnya source; lihat referensi builtin-nya.

Lakukan source hanya pada file yang Anda percaya, karena semua perintah shell-nya berjalan dalam konteks saat ini. Jika proxy hanya dibutuhkan untuk perintah di dalam skrip, eksekusi biasa adalah batas yang tepat. Untuk satu perintah eksternal, penetapan proxy yang dibatasi perintah menghindari perubahan shell saat ini.

Pertahankan penetapan variabel secara harfiah. Backtick berarti substitusi perintah, bukan tanda kutip. Baris yang menetapkan proxy tidak boleh mencoba menjalankan URL-nya secara tidak sengaja. Untuk nilai yang dimaksudkan memilih endpoint publik, daftar proxy gratis menyediakan kandidat yang protokolnya harus cocok dengan klien. Terakhir, verifikasi nama variabel yang dibaca klien jaringan sebenarnya; memperbaiki cakupan shell tidak membuat variabel yang tidak didukung menjadi efektif.

Artikel terkait