TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #518 767
Управление выводом

В консоли все выглядит одинаково. Но для системы это два разных потока:

stdout - нормальный вывод (FD 1)
stderr - ошибки (FD 2)

И если их не различать - автоматизация начинает ломаться.

▪️ Что такое stdout и stderr. Пример:


echo "OK"
echo "ERROR" >&2


Первое уйдет в stdout, второе в stderr.

Проверим:


./script.sh >out.log 2>err.log


Теперь:

out.log - нормальный результат
err.log - ошибки

⚠️ Почему это важно

1️⃣ CI/CD пайплайны. В системах вроде GitHub Actions или GitLab CI:

stdout - это лог выполнения
stderr - это ошибка шага

Если приложение пишет все в stdout, то и пайплайн может считать шаг успешным.

2️⃣ Парсинг вывода в скриптах. Типичная ошибка:


result=$(some_command)


Если some_command пишет ошибку в stdout - переменная будет содержать текст ошибки.
Автоматизация съест ее как валидные данные.

3️⃣ Логирование в systemd. В systemd:

stdout - это StandardOutput
stderr - это StandardError

Если сервис пишет ошибки в stdout, мониторинг может их не выделить.

🤩 Типичный анти-паттерн


if curl bashtex.com; then
echo "OK"
fi


Если curl вернет HTTP 500, сообщение об ошибке может уйти в stdout.

🤩 Правильно:


if curl -fsS bashtex.com; then
echo "OK"
else
echo "FAIL" >&2
fi


▪️ Управление потоками.

Раздельная запись

command >out.log 2>err.log


Объединить

command >all.log 2>&1


Игнорировать ошибки

command 2>/dev/null


Поменять местами

command 3>&1 1>&2 2>&3


BashTex 📱 #bash #utils
  • 👍 8
More from @bash_tex
  1. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  2. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  3. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  4. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  5. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
  6. Sep 30, 2026DEBUG trap - как Bash выполняет код перед каждой командой В Bash есть специальный DEBUG tr…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →