Pobieranie status code do basha

0

Hej,

Chce napisać skrypt w bash. Operacja wołana curlem. W zależności od kodu odpowiedzi chce wypisać tekst. Stworzyłam coś takiego niestety nie działa. Proszę o poprawkę, pomoc, lub wskazanie innej drogi.

HTTP_STATUS="$(curl -IL --silent http://localhost:8080/api/getCats | grep HTTP )"; 

if [ "${HTTP_STATUS}" != "HTTP/1.1 200" ] ; then
   echo "Ok"
else
  echo "Bad"
fi

0

Zkompilowałem Twój kod (a raczej zinterpretowałem go bashem):

#!/bin/bash

 HTTP_STATUS="$(curl -IL --silent http://localhost:8080/api/getCats | grep HTTP )"; 

if [ "${HTTP_STATUS}" != "HTTP/1.1 200" ] ; then
   echo "Ok"
else
  echo "Bad"
fi

I wydaje mi się, że działa, próbowałem jeszcze na paru stronkach.

0

Problem taki, że u mnie nie działa. If źle dokonuje sprawdzenia, nie wiem czemu :(
Jakiej wartości by nie podać to zawsze wykona się else

0

Dziwne, chociaż zaraz, nie zauważyłem, ja zmieniłem w if

 [ "${HTTP_STATUS}" != "HTTP/1.1 200" ]

na

 [ "${HTTP_STATUS}" != "HTTP/1.1 200 OK" ]

Tak odpowiada curl:

 ➜  bash curl -IL --silent http://www.onet.pl | grep HTTP
HTTP/1.1 200 OK
➜  bash 

1 użytkowników online, w tym zalogowanych: 0, gości: 1