A maneira mais simples é armazenar a resposta e compará-la:
$ response=$(curl -X POST -d@myfile.txt server-URL);
$ if [ "Upload successful" == "${response}" ]; then … fi;
Eu não testei isso. A sintaxe pode estar desativada, mas essa é a ideia. Tenho certeza de que existem maneiras mais sofisticadas de fazer isso, como verificar o código de saída do curl ou algo assim.
atualizar
curl
retorna alguns códigos de saída. Suponho que uma postagem com falha pode resultar em 55 Failed sending network data.
Portanto, você provavelmente pode garantir que o código de saída seja zero comparando com $?
( 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;
Ou se o seu comando for relativamente curto e você desejar fazer algo quando falhar, poderá confiar no código de saída como condição em uma instrução condicional:
$ if curl --fail -X POST -d@myfile.txt server-URL; then
# …(success)
else
# …(failure)
fi;
Eu acho que esse formato é geralmente preferido , mas pessoalmente acho menos legível.