Есть ли подобная опция в командной строке, соответствующая pipefail в bash?
Или любой другой способ получения ненулевого состояния, если одна из команд в трубе выходит из строя (но не выходит на него, который устанавливает -e).
Чтобы сделать это более ясным, вот пример того, чего я хочу достичь:
В образце отладки makefile мое правило выглядит так:
set -o pipefail; gcc -Wall $$f.c -o $$f 2>&1 | tee err; if [ $$? -ne 0 ]; then vim -o $$f.c err; ./$$f; fi;
В основном он запускает файл ошибки и исходный файл при ошибке и запускает программы, когда нет ошибки. Сохраняет мне ввод текста. Над snippet хорошо работает на bash, но моя новая система Ubunty использует тире, которая, похоже, не поддерживает опцию pipefail.
Мне в основном нужен статус FAILURE, если первая часть команды ниже:
gcc -Wall $$f.c -o $$f 2>&1 | tee err
чтобы я мог использовать это для оператора IF.
Есть ли альтернативные способы его достижения?
Спасибо!