Возможно, вы захотите взглянуть на help trap
встроенную систему, чтобы убедиться, что это будет полезно:
man bash
или
#!/bin/bash
AllowedError=5
SomeErrorHandler () {
(( errcount++ )) # or (( errcount += $? ))
if (( errcount > $AllowedError ))
then
echo "Too many errors"
exit $errcount
fi
}
trap SomeErrorHandler ERR
for i in {1..6}
do
false
echo "Reached $i" # "Reached 6" is never printed
done
echo "completed" # this is never printed
вы можете установить $? для таких ловушек:
ERR
Если вы считаете ошибки (и только тогда, когда они являются такими ошибками), как это, вместо использования « $?
», вам не нужно беспокоиться о возвращаемых значениях, отличных от нуля или одного. Например, одно возвращаемое значение 127 приведет к немедленному переброске вас через ваш порог. Вы можете также зарегистрировать trap
s для других сигналов в дополнение к ERR
.