Как я могу на потом поймать код выхода команды в Make-файле?

Была ошибка зеркального отражения для австралийского Зеркала Debian, я только что определил md5 ошибку контрольной суммы на Кв. - получают обновление. Использование основного debian сайта работало, и у меня теперь есть системный принтер конфигурации.

6
12.02.2015, 00:26
2 ответа

Если вы не беспокоитесь о времени данных, проходящихся от FOO, и вы Хорошо, с Tempfile, который нужно будет обрабатываться в вашей чистой цели, то просто:

rcheck:
        foo | tee sometempfile
        -bar < sometempfile >/dev/null 2>/dev/null

, если с другой стороны, вы многое заботитесь о времени, то вы можете сделать баром повторить свой вход в STDOUT и попробовать что-то вроде:

rcheck:
        -(foo; echo $$? > sometempfile) | bar
        exit $(cat sometempfile)

Я уверен, что будет более чистые способы, но пришекнутое выше. (Примечание, оба не пропущены)

2
27.01.2020, 20:29

Если вы используете оболочку, которая поддерживает опцию Pientfail (Bash, ksh, and zsh do), вы могли бы сделать это таким образом:

rcheck:
    set -o pipefail; foo | tee /dev/stderr | { bar >/dev/null 2>&1; true; }

мой ksh Manpage документы, которые вариант как:

pipefail
      A pipeline will not complete until all components of the pipeline have
      completed, and the return value will be the value of the last non-zero
      command to fail or zero if no command has failed.

в отличие от поведения по умолчанию:

The exit status of a pipeline is the exit status of the last command
unless the pipefail option is enabled.
1
27.01.2020, 20:29

Теги

Похожие вопросы