Допустим, я хочу проверить вывод какой-то команды на принимаемые значения, но делать что-то только в случае, если условия не выполняются. То есть мне нужно «успешно» завершить работу функции, если выполненная в ней команда вернула «0» или «2». Следующий код не работает (даже если ret = 0 или 2, то вываливает ошибку):
...
ret=$?
if [ "$ret" != "0" ] || [ "$ret" != "2" ]; then
echo "FAIL"
fi
При использовании круглых скобок вроде отрабатывает, но ругается, что не найдена команда «0» или «2».
Или нужно обязательно городить такое:
...
ret=$?
if [ "$ret" != "0" ]; then
:
elif [ "$ret" != "2" ]; then
:
else
echo "FAIL"
fi
?