Все работает как положено .
if var=-2 && (( var+=2 ))
then
echo "True"
else
echo "False"
fi
Объяснение кода:-
if var=-2 && (( var+=2 ))
var=-2 => true
Значение не равно нулю, поэтому оценивается как истинное
var+= 2 => false
Значение равно нулю, поэтому оценивается как false
это похоже на
if true && false
Согласно логическому вычислению true && false => false
В этом случае здесь наш окончательный код
if (false)
then
echo "True"
else
echo "False"
fi