доступ к ERRORLEVEL из скрипта bash - PullRequest
41 голосов
/ 26 июля 2011

У меня есть приложение, которое работает правильно только при вызове из командной строки Windows.Что-то связанное с потоками ввода / вывода.

Так что я могу вызвать его из скрипта bash, передав его в качестве аргумента cmd.

cmd / c "badapp"

Это работает нормально, но иногда badapp дает сбой из-за проблем с сетью, и я не получаю обратной связи.Есть ли в любом случае, чтобы проверить ERRORLEVEl из скрипта bash - или посмотреть вывод badapp на терминале, где работает скрипт bash?

1 Ответ

53 голосов
/ 26 июля 2011

да, $? - это переменная, которая содержит уровень ошибки.

Попробуйте, например, echo $?.

Пример из Cygwin bash (полагаю, вы используете Cygwinпотому что вы используете Windows cmd в вашем примере.)

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