• 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

       

 

Aucun commentaire

 

Laissez un commentaire