Проблемы с pipefail в bash

Решил попробовать писать скрипты с pipefail, но с ними возникают проблемы, когда используешь команду head

Предыдущему потоку в pipe посылается сигнал SIGPIPE, поэтому он падает.

Для того, чтобы этого избежать помогло следующее

echo (git show --pretty=format:%H || [ $? -eq 141 ] ) | head -n1)
echo "${PIPESTATUS[@]}"

То есть мы проверяем код возврата команды, которая может упасть с SIGPIPE и не падаем, если поймали нужный код

Пробовал ещё другие варианты, но они не помогли:

НЕ ПОМОГЛО

nothing() {
	return 0
}
# trap nothing PIPE

#linux #pipefail #bash