Tôi đang viết một kịch bản cần được thực thi bằng cách sử dụng source
, vì nhiệm vụ của nó là sửa đổi môi trường. Trong tập lệnh, tôi muốn sử dụng set -e
để bất kỳ lỗi nào dừng tập lệnh. Kịch bản trông như thế này:
#!/bin/bash
set -e
# do something
cd somewhere
source anotherScript
Vấn đề là set -e
tự nhiên vẫn có hiệu lực sau khi kịch bản kết thúc. Làm cách nào tôi có thể đảm bảo rằng set
tùy chọn đã thay đổi được khôi phục đúng giá trị phổ biến của nó khi tập lệnh dừng (theo bất kỳ cách nào - bằng cách hoàn thành thành công hoặc xảy ra lỗi)?
-x
/ xtrace
) được giải quyết tại dấu vết thực thi Suppress cho lệnh echo?