-
BASH > PIPESTATUS, pour savoir si une commande a échoué
PIPESTATUS permet de savoir si une commande, dans un pipe ou non, a échoué ou réussi, en envoyant un code retour. 0 = réussi, sinon, code erreur.
#!/bin/bash WEB_SERVER=site.org curl -# -f -u ${USERNAME}:${PASSWORD} http://${WEB_SERVER}/ | grep "unMessage" RC=( "${PIPESTATUS[@]}" ) if [ "${RC[0]}" -eq "22" ]; then # curl a renvoyé 22, qui correspond à une erreur 400 (404, 401, etc.) echo "Invalid credentials" exit 1 fi # PIPESTATUS a changé, mais a été sauvegardé grace à RC if [ "${RC[1]}" -eq "0" ]; then echo "Grep succeeded" echo "Web server reported SomeMessage" else echo "Web server didn't report SomeMessage" fi