Если команда make
не работает, например gcc
, она завершает работу...
gcc
gcc: fatal error: no input files
compilation terminated.
make: *** [main.o] Error 4
Однако, если у меня есть труба, берется статус выхода последней команды в трубе. В качестве примера gcc | cat
не сбой, поскольку cat
преуспевает.
Я знаю, что коды выхода для всего канала хранятся в массиве PIPESTATUS
, и я могу получить код ошибки 4 с помощью ${PIPESTATUS[0]}
. Как я должен структурировать мой make файл для обработки команды с каналами и выхода из строя как обычно?
Как и в комментариях, еще один пример: gcc | grep something
. Здесь я предполагаю, что наиболее желаемое поведение по-прежнему остается для gcc
и только gcc
, чтобы вызвать сбой, а не grep
, если он ничего не нашел.