Если команда 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, если он ничего не нашел.