Skrip anda mengandungi baris export https_proxy=... yang betul. Anda menjalankannya, tetapi arahan seterusnya masih melihat proxy lama. Mungkin skrip itu berfungsi dengan sempurna dalam prosesnya sendiri.

Menjalankan skrip memulakan shell berasingan. Ia boleh menyalurkan pemboleh ubah kepada arahan yang dimulakannya, tetapi ia tidak boleh menggantikan persekitaran shell induk terminal itu selepas keluar.

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

Ini adalah operasi yang berbeza. Yang kedua menggunakan builtin dot shell untuk membaca fail dalam shell semasa. Bash juga memanggilnya source; lihat rujukan builtinnya.

Lakukan source hanya pada fail yang anda percayai, kerana semua arahan shellnya berjalan dalam konteks semasa itu. Jika proxy hanya diperlukan untuk arahan di dalam skrip, pelaksanaan biasa ialah sempadan yang betul. Untuk satu arahan luaran, penetapan proxy terhad kepada arahan mengelakkan perubahan shell semasa.

Kekalkan penetapan pemboleh ubah secara literal. Backtick bermaksud penggantian arahan, bukan petikan. Baris yang menetapkan proxy tidak sepatutnya secara tidak sengaja cuba melaksanakan URLnya. Untuk nilai yang bertujuan memilih titik akhir awam, senarai proxy percuma menyediakan calon yang protokolnya mesti sepadan dengan klien. Akhir sekali, sahkan nama pemboleh ubah yang dibaca oleh klien rangkaian sebenar; membaiki skop shell tidak menjadikan pemboleh ubah yang tidak disokong berkesan.

Artikel berkaitan