trap - ловушка в bash

Синтаксис:

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

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

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

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

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


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

bash