Запустите команду makefile из скрипта bash и верните код ошибки - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть make-файл Python.Я могу запустить его команды из моего скрипта bash, как показано ниже:

local make_lint_output=""
make_lint_output="$( make test-unit  2>&1 )"
echo "${make_lint_output}"

local result=$? 
if (( result == 0 )); then
    return 1
fi 

Но проблема в том, что он всегда возвращает $?как 0, хотя команда make завершается с ошибкой.

В случае сбоя часть вывода выглядит так, как показано ниже

E ImportError: Нет модуля с именем 'serial' !!!!!!!!!!!!!!!!!!!Прервано: 3 ошибки во время сбора !!!!!!!!!!!!!!!!!!!!=========================== 3 ошибка за 0,17 секунды ============================ Makefile: 61: рецепт для цели 'test-power-control' не удался

$?должен быть возвращен, кроме 0 в этом случае.Что мне здесь не хватает?Я запускаю скрипт bash на компьютере с Unix.

1 Ответ

0 голосов
/ 27 февраля 2019

echo выполняется успешно и, таким образом, возвращает 0. Вы должны захватить код возврата перед выполнением другой команды, которая может заглушить $? (до эха).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...