Script của bạn có dòng export https_proxy=... đúng. Bạn chạy nó, và lệnh tiếp theo vẫn thấy proxy cũ. Có thể script đã hoạt động hoàn hảo bên trong tiến trình của chính nó.

Chạy một script sẽ khởi động một shell riêng. Shell đó có thể truyền biến cho các lệnh nó khởi chạy, nhưng không thể thay thế môi trường của shell cha của terminal sau khi kết thúc.

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

Đây là hai thao tác khác nhau. Cách thứ hai dùng builtin dot của shell để đọc tệp trong shell hiện tại. Bash cũng gọi nó là source; xem tài liệu tham khảo về builtin.

Chỉ source tệp mà bạn tin tưởng, vì mọi lệnh shell của nó chạy trong ngữ cảnh hiện tại đó. Nếu proxy chỉ cần cho các lệnh bên trong script, cách chạy thông thường mới là ranh giới đúng. Với một lệnh bên ngoài duy nhất, gán proxy giới hạn trong lệnh tránh việc thay đổi shell hiện tại.

Giữ các phép gán biến theo nghĩa đen. Backtick nghĩa là thay thế lệnh, không phải trích dẫn. Một dòng gán proxy không nên vô tình cố chạy URL của nó. Với các giá trị nhằm chọn một điểm cuối công khai, danh sách proxy miễn phí cung cấp các ứng viên mà giao thức phải khớp với máy khách. Cuối cùng, hãy kiểm tra tên biến mà máy khách mạng thực tế đọc; việc sửa phạm vi shell không làm cho một biến không được hỗ trợ trở nên hiệu lực.

Bài viết liên quan