2017-01-26 5 views
-1

мне нужно проверить, если удаленный файл существует на основе ответа URL-адрес, выполнив:Проверьте URL возвращает 200 с помощью Баш

curl -u myself:XXXXXX -Is https://mylink/path/to/file | head -1 

Что может дать что-то вроде этих:

'HTTP/1.1 200 OK 
' 

или

'HTTP/1.1 404 Not Found 
' 

Теперь я хочу извлечь код состояния http, как 200, из приведенной выше строки и назначить n umber к переменной. Как я могу это сделать?

ответ

2

Используйте опцию -o, чтобы отправить заголовки /dev/null и использовать опцию -w для вывода только статус.

$ curl -o /dev/null -u myself:XXXXXX -Isw '%{http_code}\n' https://mylink/path/to/file 
200 
$ 

Если вы хотите захватить статус переменной, вы можете опустить новую строку из формата.

$ status=$(curl ... -Isw '%{http_code}' ...) 
0

Использование Grep:

curl -u myself:XXXXXX -Is https://mylink/path/to/file | head -1 | grep -o '[0-9][0-9][0-9]' 
Смежные вопросы