0

Доступ к ERRORLEVEL из bash-скрипта

17

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

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

cmd /c "badapp"

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

1 ответ(ов)

0

Да, $? — это переменная, которая содержит код возврата последней выполненной команды.

Попробуйте выполнить echo $?, чтобы увидеть это на практике.

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

susam@nifty /cygdrive/c/Documents and Settings/susam/Desktop
$ cmd /c "badapp"
'badapp' не является внутренней или внешней командой,
доступной программе или пакетному файлу.

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

В этом примере команда cmd /c "badapp" завершилась с ошибкой, поэтому переменная $? вернула ненулевое значение, что привело к выводу "bad".

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь