Видел в чужих скриптах такую конструкцию для обработки и оповещении о переменных, которые не были определены:
FIRST="${1:?}"
где знак вопроса ?
заставляет bash выкинуть ошибку такого рода, если переменная не была определена:
./test.sh: line 2: 1: parameter null or not set
Проблема в том, что при использовании такого подхода придется каждую переменную оборачивать в такую констукцию.
My approach
set -u
cuz:
-u Treat unset variables as an error when substituting.
Как выглядит ошибка:
./test.sh: line 3: $1: unbound variable