ฉันกำลังเขียนสคริปต์ที่ต้องดำเนินการโดยใช้source
เพราะหน้าที่ของมันคือการแก้ไขสภาพแวดล้อม ในระหว่างสคริปต์ฉันต้องการใช้set -e
เพื่อให้ข้อผิดพลาดใด ๆ หยุดสคริปต์ สคริปต์มีลักษณะดังนี้:
#!/bin/bash
set -e
# do something
cd somewhere
source anotherScript
ปัญหาคือว่าset -e
ยังคงมีผลตามธรรมชาติหลังจากสคริปต์เสร็จสิ้น ฉันจะมั่นใจได้อย่างไรว่าset
ตัวเลือกที่เปลี่ยนแปลงนั้นได้รับการคืนค่าอย่างเหมาะสมเมื่อสคริปต์หยุดทำงาน (ไม่ว่าด้วยวิธีใด - โดยการดำเนินการให้สำเร็จหรือเกิดข้อผิดพลาด)
-x
/ xtrace
ตัวเลือก) ได้รับการแก้ไขที่การติดตามการเรียกใช้งานการปราบปรามสำหรับคำสั่ง echo หรือไม่