Exit code và set -e: vì sao script "an toàn" vẫn âm thầm nuốt lỗi
set -e tưởng làm script dừng ngay khi có lỗi, nhưng nó có nhiều ngoại lệ khiến lỗi lọt qua — nguy hiểm nhất là exit code của pipe chỉ lấy lệnh cuối. Bài này chạy thật: exit code từng lệnh, set -e dừng ở đâu và KHÔNG dừng ở đâu, bẫy false | echo trả 0, và bộ ba set -euo pipefail bắt cả biến chưa gán.