web-dev-qa-db-fra.com

accès à 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 badapp échoue parfois avec des problèmes de réseau - et je n'obtiens aucun commentaire. Existe-t-il de toute façon pour vérifier le ERRORLEVEl à partir du script bash - ou voir la sortie de badapp sur le terminal exécutant le script bash?

41
shipshape

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
53
Susam Pal