Обнаружение ошибок в командах сценария оболочки, таких как «make» - PullRequest
1 голос
/ 30 ноября 2011

Я хочу написать скрипт для extract , configure , make и make install source (xyz.tar.bz2).Но я хочу остановить этот скрипт, если есть ошибка в одной из этих команд.Есть ли какой-либо сигнал или метод специально для команды make , чтобы обнаружить ошибки во время выполнения, чтобы остановить скрипт?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Обычно нормально прерывается, если любая выполняемая команда возвращает ненулевой код выхода (в том числе, будучи убитым сигналом). Так что вам просто нужно убедиться, что ваш скрипт существует (с ошибкой) в случае сбоя команды. Кроме того, make сам по себе существует с ненулевым статусом (так что вы можете обнаружить ошибку make или make install). Обратите внимание, что make можно указать игнорировать ошибки для каждой команды (с помощью префикса команды -), но это не значение по умолчанию.

Вы можете сделать это двумя основными способами:

  1. set -e (хотя учтите, что set -e имеет много проблем )
  2. Проверка каждой команды на неудачу (например, tar xzf foo.tar.gz || exit 1)

В качестве альтернативы, вы можете использовать make так, как это задумано, и написать make rules для выполнения всех этих шагов.

0 голосов
/ 03 декабря 2011

Это правда;более простой способ ниже ...

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