Самый простой способ - проверить код выхода curl.
$ curl --fail -LI http://google.com -o /dev/null -w '%{http_code}\n' -s > /dev/null
$ echo $?
0
$ curl --fail -LI http://g234234oogle.com -o /dev/null -w '%{http_code}\n' -s > /dev/null
$ echo $?
6
Обратите внимание, что --fail
здесь необходимо ( подробности в этом ответе ).Также обратите внимание, как указано Бобом в комментариях (см. Сноску) , что в случае не 200
кода успеха это все равно вернет 0
.
Если вы не хотите использовать это по какой-либо причине, вот другой подход:
http_code=$(curl -LI http://google.com -o /dev/null -w '%{http_code}\n' -s)
if [ ${http_code} -eq 200 ]; then
echo 0
fi
Причина, по которой ваш код не работает, заключается в том, что у вас есть для добавления пробелов в скобках.
(скопировано из моего ответа на SuperUser, где OP перекрестно разместил к удаленному вопросу)