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?
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