Если вы используете статус кода завершения bash $? в качестве переменной, лучше сделать это:
if [ $? -eq 4 -o $? -eq 8 ] ; then
echo "..."
fi
Потому что если вы сделаете:
if [ $? -eq 4 ] || [ $? -eq 8 ] ; then
Левая часть ИЛИ изменяет переменную $? , поэтому правая часть ИЛИ не имеет исходного $? значение.