คุณต้องการให้การดาวน์โหลดหนึ่งครั้งใช้พร็อกซีอื่น แล้วทุกอย่างกลับสู่ปกติ ไม่จำเป็นต้องแก้ไขไฟล์เริ่มต้นของเชลล์แล้วหวังว่าจะจำได้ว่าต้องย้อนกลับ

สำหรับคำสั่งภายนอกในเชลล์แบบ POSIX ให้วางการกำหนดค่าก่อนคำสั่ง:

https_proxy=http://proxy.example:8080 curl https://example.com/

ใช้ปลายทาง HTTP ที่ตั้งใจไว้สำหรับการดาวน์โหลดนั้น รายการพร็อกซี HTTP มีผู้สมัครสำหรับเส้นทางสาธารณะที่ได้รับอนุญาต การกำหนดค่าจะถูกส่งไปยังสภาพแวดล้อมของคำสั่งนั้น กระบวนการลูกสามารถสืบทอดค่าได้ แต่หลังคำสั่งสิ้นสุด การกำหนดค่าจะไม่แทนที่ค่าที่มีอยู่ของเชลล์แม่

ไคลเอนต์ยังคงเป็นผู้ตัดสินใจว่าจะอ่านอะไร

ไวยากรณ์ของเชลล์สร้างสภาพแวดล้อม ไม่ได้บังคับเส้นทางเครือข่าย ใช้ชื่อตัวแปรที่แอปพลิเคชันรองรับ ตัวแปรข้ามที่มีอยู่ ตัวเลือกคำสั่งที่ชัดเจน หรือการกำหนดค่าของแอปพลิเคชันเองอาจยังส่งผลต่อผลลัพธ์

เอกสารสภาพแวดล้อมของ Bash อธิบายพฤติกรรมของคำนำหน้าคำสั่ง คำสั่งที่เป็นฟังก์ชันของเชลล์ คำสั่งภายในพิเศษ หรือไวยากรณ์ของเชลล์อาจมีกฎขอบเขตเพิ่มเติม ดังนั้นตัวอย่างง่ายๆ ข้างต้นจึงจงใจใช้โปรแกรมภายนอก

สำหรับหลายคำสั่ง ให้ใช้เชลล์ย่อย

(
  export http_proxy=http://proxy.example:8080
  export https_proxy=http://proxy.example:8080
  command-one
  command-two
)

กลุ่มในวงเล็บทำงานด้วยสภาพแวดล้อมเชลล์ของตนเอง แทนที่ชื่อคำสั่งในตัวอย่างด้วยโปรแกรมที่คุณต้องการเรียกใช้ รูปแบบนี้หลีกเลี่ยงลำดับที่เปราะบางคือการบันทึกค่าเก่า เขียนทับ และกู้คืนด้วยมือหลังจากความล้มเหลวทุกกรณีที่อาจเกิดขึ้น

เก็บความลับออกจากตัวอย่างที่คัดลอกไปยังประวัติเชลล์ และจำไว้ว่า sudo สามารถกรองสภาพแวดล้อมได้ ตัวแปรที่คำสั่งภายนอกมองเห็นไม่ได้รับการส่งผ่านขอบเขตสิทธิ์ทุกขั้นโดยอัตโนมัติ ขอบเขตชั่วคราวและการเลือกพร็อกซีจริงยังคงเป็นคำถามที่แยกจากกัน

บทความที่เกี่ยวข้อง