Ловушка trap устанавливает обработчик ошибок.
trap перехватывает ошибки и выполняет определенные действия при их возникновении.

Синтаксис

set -E  # позволяет trap работать
trap some_cmd <SIGNAL>

Боевой пример

#!/usr/bin/env bash
error_handler() {
	local exit_code="$?"
	echo "Ошибка. Код ошибки: $exit_code" >&2
	rm tmp.file  # удаление файлов, созданных скриптом
	exit "$exit_code"
}
 
set -eEuo pipefail
 
trap error_handler ERR
# или:
trap error_handler ABRT HUP INT QUIT TERM ERR

Установил обработчик (функция) error_handler для сигнала ERR.
при возникновении ошибки в любой команде в скрипте, будет вызван обработчик error_handler. Суть error_handler в “чистке за собой” при возникновении какой-то ошибки.


Соус: Книга Идиомы Bash Глава 5. Файлы и не только Это ловушка!