web-dev-qa-db-fra.com

Imprimer le dernier message d'erreur de stderr?

J'ai un script qui déploie un service Web et j'ai trouvé ce petit assistant pour exitWithMessageOnError.

exitWithMessageOnError () {
  if [ ! $? -eq 0 ]; then
    echo "An error has occurred during web site deployment."
    echo $1
    exit 1
  fi
}

Ceci est en cours d'exécution parce que grunt échoue pour une raison quelconque.

grunt --no-color --verbose clean build
exitWithMessageOnError "grunt failed"

Malheureusement, tout ce que je reçois est An error has occurred during web site deployment. et grunt failed. Ce que je voudrais faire, c'est imprimer l'erreur qui s'est produite afin que je puisse la réparer.

J'ai essayé quelque chose avec >&2 mais je n'ai pas réussi à le faire fonctionner.

2
user974407

Si un programme seul écrit dans stderr, vous devriez pouvoir voir sa sortie d'erreur sans avoir besoin de cette fonction d'assistance. Dans votre message, votre commande suggère que vous n'utilisiez aucune redirection et que vous étiez censé voir le flux d'erreur. Pour résoudre ce problème, vous pouvez bien sûr rediriger à la fois stdout et stderr vers deux fichiers séparés (ou les deux vers le même fichier avec &> file.txt) et voir ce qui se passe réellement.

0