Возникли проблемы при сравнении 2 кодов ответов в оболочке. Запуск curl и необходимо проверить, находится ли ответ между 200 и 400. Кроме того, есть вероятность, что ответ будет "000", когда сервер не работает.
#!/bin/sh
response1="200" #curl first url
response2="000" #curl second url
if (( $response1 -ge 400 || $response1 -lt 200 || $response2 -ge 400 || $response2 -lt 200 )) ; then
echo "Something went wrong, response code is not in success range"
exit 1
else
echo "Success"
exit 0
fi
((: 200 -ge 400 || 200 -lt 200 || 000 -ge 400 || 000 -lt 200 : синтаксическая ошибка в выражении (маркер ошибки "400 || 200 -lt 200 || 000 -ge 400 || 000 -200 лт ")
Если я изменю скобки на [[ ... ]], он всегда возвращает значение true. Если я изменю-lt на < и -ge на>=, появится следующая ошибка:
((: 200 = 400 || 200 < 200 || 000 = 400 || 000 < 200 : попытка присвоения непеременной (маркер ошибки "= 400 || 200 < 200 || 000 = 400 || 000