Bash:
Запис до стандартної помилки
Як це зробити:
У Bash, ви використовуєте >&2 для перенаправлення виводу в stderr. Ось простий приклад:
echo "Це звичайне повідомлення"
echo "Це повідомлення про помилку" >&2Під час виконання цього скрипта буде відображено обидва повідомлення на консолі, але якщо ви їх перенаправите, ви зможете відокремити stdout від stderr. Наприклад:
bash script.sh > output.txt 2>error.txtoutput.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.