Ensuring Cleanup Runs on Exit

Updated

October 31, 2026

Ensuring Cleanup Runs on Exit

The pseudo-signal EXIT (or 0) runs when the shell exits for any reason (normal finish, exit call, or set -e abort):

TEMP_DIR=$(mktemp -d)
trap 'rm -rf "${TEMP_DIR}"' EXIT

# Even if a command fails below with set -e, TEMP_DIR is guaranteed to be deleted!
curl -sS https://example.com/data.tar.gz | tar -xz -C "$TEMP_DIR"