50 votes

accéder à ERRORLEVEL à partir du script bash

J'ai une application qui ne fonctionne correctement que lorsqu'elle est appelée à partir d'une invite de commande Windows. Quelque chose à voir avec les flux d'entrée/sortie.

Je peux donc l'appeler à partir d'un script bash en le passant comme argument à cmd.

cmd /c "badapp"

Cela fonctionne bien - mais parfois badapp échoue avec des problèmes de réseau - et je ne reçois aucun retour. Y a-t-il de toute façon pour vérifier le ERRORLEVEL du script bash - ou voir la sortie de badapp sur le terminal exécutant le script bash ?

71voto

Susam Pal Points 6171

Oui, $? est la variable qui contient le niveau d'erreur.

Essayez echo $? par exemple.

Un exemple de Cygwin bash (je suppose que vous utilisez Cygwin parce que vous utilisez Windows cmd dans votre exemple.)

 susam@nifty /cygdrive/c/Documents and Settings/susam/Desktop
$ cmd /c "badapp"
'badapp' is not recognized as an internal or external command,
operable program or batch file.

susam@nifty/cygdrive/c/Documents and Settings/susam/Desktop
$ if [ $? -eq 0 ]
> then
>   echo "good"
> else
>   echo "bad"
> fi
bad

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X