Một biến thể khác của câu trả lời của @rolf:
Một cách khác để lưu trạng thái thoát sẽ là một cái gì đó như
mkdir /tmp/status_dir
và sau đó có từng kịch bản
script_name="${0##*/}" ## strip path from script name
tmpfile="/tmp/status_dir/${script_name}.$$"
do something
rc=$?
echo "$rc" > "$tmpfile"
Điều này cung cấp cho bạn một tên duy nhất cho mỗi tệp trạng thái bao gồm tên của tập lệnh đã tạo nó và id tiến trình của nó (trong trường hợp có nhiều phiên bản của cùng một tập lệnh đang chạy) mà bạn có thể lưu để tham khảo sau và đặt tất cả chúng vào cùng một vị trí để bạn có thể xóa toàn bộ thư mục con khi bạn hoàn tất.
Bạn thậm chí có thể lưu nhiều trạng thái từ mỗi tập lệnh bằng cách thực hiện một số thứ như
tmpfile="$(/bin/mktemp -q "/tmp/status_dir/${script_name}.$$.XXXXXX")"
tạo tập tin như trước đây, nhưng thêm một chuỗi ngẫu nhiên duy nhất vào nó.
Hoặc, bạn chỉ có thể nối thêm thông tin trạng thái vào cùng một tệp.