Pobieranie status code do basha

Pobieranie status code do basha
marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
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.

Kopiuj
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

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5025
0

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

Kopiuj
#!/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.

marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
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

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5025
0

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

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

na

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

Tak odpowiada curl:

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.