La forma más simple es almacenar la respuesta y compararla:
$ response=$(curl -X POST -d@myfile.txt server-URL);
$ if [ "Upload successful" == "${response}" ]; then … fi;
No he probado eso. La sintaxis puede estar desactivada, pero esa es la idea. Estoy seguro de que hay formas más sofisticadas de hacerlo, como verificar el código de salida de curl o algo así.
actualizar
curl
devuelve bastantes códigos de salida. Supongo que una publicación fallida podría resultar en 55 Failed sending network data.
Así que probablemente podría asegurarse de que el código de salida fuera cero comparando con $?
( Expands to the exit status of the most recently executed foreground pipeline.
):
$ curl -X POST -d@myfile.txt server-URL;
$ if [ 0 -eq $? ]; then … fi;
O si su comando es relativamente corto y desea hacer algo cuando falla, puede confiar en el código de salida como condición en una declaración condicional:
$ if curl --fail -X POST -d@myfile.txt server-URL; then
# …(success)
else
# …(failure)
fi;
Creo que a menudo se prefiere este formato , pero personalmente me parece menos legible.