Задать вопрос

Как перенаправить stderr в bash через функцию?

Доброго времени суток,

Имеется, к примеру, кусочек такого кода:

#! /bin/bash

error_action () {
    echo "Failed! Check $ERR_LOG" 
    exit 1
}

apt-get install -y build-essential linux-headers-$(uname -r) >/dev/null || error_action


Как реализовать через функцию перенаправление вывода stderr в лог, в случае если предыдущая команда завершается с ошибкой? При этом на stdout должен быть выведен результат выполнения команды echo из функции, и ничего более.
  • Вопрос задан
  • 3240 просмотров
Подписаться 3 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
powerthrash
@powerthrash Автор вопроса
Такой вариант не подходит. Дело в том, что перенаправление должно быть именно в функции. Скрипт довольно объемный, для всех команд отдельно прописать 2>/tmp/error.log будет не совсем рационально.
Ответ написан
egor_nullptr
@egor_nullptr Куратор тега Linux
... 1>/dev/null 2>/tmp/error.log || error_action
Ответ написан
Комментировать
icelaba
@icelaba
Знаю и умею всё
см set -o pipefail
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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