Wget создает выходной файл, даже если страница не существует
Вопрос
Можно запретить Wget создавать выходной файл при возникновении ошибки типа 404.
Когда я бегу
wget -O my.html http://sdfsdfdsf.sdfds
http://sdfsdfdsf.sdfds не существует, но Wget все равно создает my.html
Я создаю сценарий bash и хочу убедиться, что он остановится, если wget не сможет получить действительный файл.
Решение
wget возвращает ненулевой ответ для ответов, отличных от 200 (кажется).
Этот пример кода работал у меня с GNU wget:
#!/bin/sh
wget -O my.html http://sdfsdfdsf.sdfds
if [ "$?" -ne "0" ]; then
echo "ERROR"
fi
Вот дополнительная информация о $?
от здесь.
$?Статус выхода последней выполненной команды дается как десятичная строка.Когда команда завершается успешно, она возвращает статус выхода 0 (ноль), в противном случае она возвращает ненулевой статус выхода.
Другие советы
Вместо этого вы могли бы использовать curl(1):
curl -s -f -o my.html http://sdfsdfdsf.sdfds