Bash:
Запис до стандартної помилки
Як це зробити:
У Bash, ви використовуєте >&2
для перенаправлення виводу в stderr. Ось простий приклад:
echo "Це звичайне повідомлення"
echo "Це повідомлення про помилку" >&2
Під час виконання цього скрипта буде відображено обидва повідомлення на консолі, але якщо ви їх перенаправите, ви зможете відокремити stdout від stderr. Наприклад:
bash script.sh > output.txt 2>error.txt
output.txt
міститиме "Це звичайне повідомлення"
, тоді як error.txt
захопить "Це повідомлення про помилку"
.
Для практичного прикладу розглянемо скрипт, який обробляє файли й повідомляє про помилку, якщо файл не існує:
filename="example.txt"
if [ ! -f "$filename" ]; then
echo "$filename не існує!" >&2
exit 1
else
echo "Обробка $filename"
fi
Приклад виводу прямо в консоль, коли example.txt
не існує:
example.txt не існує!
У Bash немає прямих сторонніх бібліотек для обробки stderr, оскільки перенаправлення підтримується за замовчуванням і зазвичай є достатнім. Однак для складних застосунків можна інтегрувати рамки логування або зовнішні інструменти логування, такі як syslog
або log4bash
, щоб ефективніше управляти як stdout, так і stderr.