Najprostszym sposobem jest zapisanie odpowiedzi i porównanie:
$ response=$(curl -X POST [email protected] server-URL);
$ if [ "Upload successful" == "${response}" ]; then … fi;
Nie testowałem tego. Składnia może być wyłączona, ale taki jest pomysł. Jestem pewien, że istnieją bardziej wyrafinowane sposoby, takie jak sprawdzenie kodu wyjścia curl lub coś takiego.
aktualizacja
curl
zwraca sporo kodów wyjścia. Domyślam się, że nieudany post może spowodować, 55 Failed sending network data.
więc prawdopodobnie możesz po prostu upewnić się, że kod wyjścia był równy zero, porównując do $?
( Expands to the exit status of the most recently executed foreground pipeline.
):
$ curl -X POST [email protected] server-URL;
$ if [ 0 -eq $? ]; then … fi;
Lub jeśli twoje polecenie jest stosunkowo krótkie i chcesz coś zrobić, gdy się nie powiedzie, możesz polegać na kodzie wyjścia jako warunku w instrukcji warunkowej:
$ if curl --fail -X POST [email protected] server-URL; then
# …(success)
else
# …(failure)
fi;
Myślę, że ten format jest często preferowany , ale osobiście uważam go za mniej czytelny.