Mam prosty skrypt do sprawdzenia, czy strona zawiera określony ciąg znaków. Wygląda na to:Test basha (wynik polecenia) test równości
#!/bin/bash
res=`curl -s "http://www.google.com" | grep "foo bar foo bar" | wc -l`
if [[ $res == "0" ]]; then
echo "OK"
else
echo "Wrong"
fi
Jak widać, czekam na "OK", ale otrzymałem komunikat "Wrong".
Co jest nie tak z tym?
Jeśli użyję, jeśli [$ res == "0"], działa. Jeśli po prostu użyję res = "0" zamiast res = curl...
, może on również uzyskać pożądane wyniki.
Dlaczego są te różnice?
Dzięki, to dobre rozwiązanie. Ale, jako moje pytanie, po prostu chcę wiedzieć, dlaczego [[res == "0"]] nie działa w tym przypadku, dzięki czemu mogę uniknąć popełniania tych samych błędów w przyszłości – kliu
co widzisz z 'od -c <<< "$ res" '? Czy istnieją dodatkowe białe znaki? –
Tak, masz rację, są tam białe spacje wyjściowe. Dzięki. – kliu