LINUX.ORG.RU

Ответ на: комментарий от garik_keghen

Поправлю

wget http://site.com/file.txt 2>/dev/null || { echo "file not found"; exit 1; }

если оставить просто exit 1, он будет выполняться всегда, независимо от результата wget

CaHbl4
()
Ответ на: комментарий от CaHbl4

2>/dev/null

А это зачем? wget и на LANG умеет нормально сказать, что не так. И это может быть не только «нет файла», а что угодно, от нет сети, неправильный url, до нет доступа к файлу и так далее.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)

Вот точнее для вашего тех задания:

if wget -nv "http://site.com/file.txt" 2>&1 | grep -q 404: ; then echo "ERROR: Not Found" >&2

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 2)
Ответ на: комментарий от vodz

grep -q 404

Будет неправильно работать если сервер отдаст ошибку отличную от 404. Будет неправильно работать если сервера нет вообще.
А еще неплохо бы редиректы запретить. А то например на http://microsoft.ru/file.txt ни один из предложенных вариантов не работает как надо.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Будет неправильно работать если сервер отдаст ошибку отличную от 404. Будет неправильно работать если сервера нет вообще.

Имеено это я и добивался, ибо ТЗ ТСа я понял именно так. Правильнее, конечно, записать в переменную, и выводить то сообщение если это код не 404.

vodz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.