Hallo,
ich hab folgendes Problem.
ich will in einem skript mit "curl" http requests an einen server schicken. dazu hab ich mehrere dateien in denen meine parameter liegen die in den requests mitgeschickt werden sollen. diese übergebe ich an curl und schicke das ganze ab. wenn alle requests erfolgreich waren sollen alle dateien in den unterordner backup verschoben werden.
-
for i in *.ref1; do
echo $i
dateiname="@${i}"
curl -S --connect-timeout 4 -d $dateiname "http://XXX.XXX.XXX.XXX:XXXX/XX/XXX.aspx"
if [ $? = 0 ]
then
echo "0"
mv $i backup/
else
echo "ERROR"
fi
done
das klappt soweit ganz gut. nun hänge ich aber bei der fehlerbehandlung.
mit " if [ $? = 0 ]" kann ich prüfen ob der timeout den ich festgelegt hab zuschlägt. es also eine verbindung zum server aufgebaut werden konnte.
bei den parametern die ich mitsende handelt es sich z.b um einen hash der wiederum beim webserver gegengeprüft wird. stimmt der nicht liefert dieser mir einen error zurück
Ausgabe auf der Konsole:
ERROR:ChecksumInvalid
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT D/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
jetzt dachte ich mir pack ich den curl aufruf in eine if-abfrage und häng hinten dran ein grep welches auf "ERROR" prüft
im stil von
if [ curl -S --connect-timeout 4 -d $dateiname "http://XXX.XXX.XXX.XXX:XXXX/XX/XXX.aspx" | grep "ERROR" = true ]
then ...
ich weis nun nicht so recht wie die korrekte syntax für so eine abfrage aussehen könnte (ich hab schon mehrere probiert aber immer ohne erfolg), ob das so überhaupt möglich ist oder es vielleicht eine viel bessere lösung gibt ?
vielen dank schon mal im vorraus !!!