BashMaster
8.22K subscribers
678 photos
14 videos
1 file
701 links
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов.

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
⚙️ Polybar

✔️Настраиваемая панель статуса для Linux и Unix-подобных операционных систем. Она предназначена для работы с различными оконными менеджерами и средами рабочего стола, предоставляя гибкий и многофункциональный инструмент для отображения информации о системе, статусе приложений и пользовательских модулей

➡️ Некоторые преимущества Polybar:
▶️высокая настраиваемость с широким спектром встроенных модулей
▶️поддержка нескольких мониторов и динамической конфигурации
▶️активное сообщество и обширная документация
▶️лёгкость и эффективное использование ресурсов.

▶️Конфигурационный файл Polybar находится в ~/.config/polybar/config.

➡️ Некоторые функции программы:
▶️отображение даты и времени
▶️раскладка клавиатуры и статус индикаторов; 4
▶️уровень подсветки
▶️управление громкостью
управление воспроизведением MPD и статус
▶️детали сетевого подключения
▶️пользовательское дерево меню
▶️индикатор нагрузки процессора.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Уйти в пентест? Стать devops-инженером или системным администратором? 
Только вам решать, куда расти, если вы знаете Linux.

Курс "Основы Linux" обучит вас тонкостям работы с ОС: от работы в командной строке до создания прикладных программ.

80% практики
сопровождение куратора
финальный проект для портфолио — курс завершает проектная работа
сертификат или удостоверение о повышении квалификации

Старт: 17 февраля. Оставьте заявку на сайте или напишите нашему менеджеру @Codeby_Academy

Присоединяйтесь и узнайте все о Linux и смежном ПО: от основ командной строки до развертывания Kubernetes! 
⚙️ Starship

✔️Инструмент для настройки приглашения командной строки, который легко накатывается поверх zsh, fish, bash и прочего.

➡️ Особенности:
▶️Быстрая. Очень быстрая.
▶️Настраиваемая. Можно настроить каждый элемент командной строки
▶️Универсальная. Работает с любой оболочкой и в любой операционной системе
▶️Умная. Сразу показывает соответствующую информацию
▶️Много функций. Поддерживает все любимые инструменты
▶️Лёгкая. Быстрая установка — начать использовать программу можно в считанные минуты

➡️ Для работы Starship в терминале должен быть установлен шрифт Nerd Font (например, FiraCode Nerd Font), иначе некоторые специальные символы не будут отображаться нормально в приглашении командной строки.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ k1s — самая простая панель управления Kubernetes

✔️Минималистичная панель управления Kubernetes, показывающая текущее состояние ресурсов Kubernetes определённого типа в реальном времени. Инструмент состоит из сценария Bash примерно из 50 строк кода.

▶️Панель может отображать вид в реальном времени любого типа ресурсов в любом пространстве имён (или по всем пространствам имён). Для некоторых типов ресурсов выводится дополнительная информация, например текущее состояние для Pod и требуемое и фактическое количество реплик для Deployments.

➡️ k1s запускается прямо на локальной машине и использует обычную конфигурацию kubeconfig на машине. То есть по умолчанию подключается к тому же кластеру, к которому подключается kubectl.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, меня зовут Артур (@artur_speaking). Я обычный техлид в Российской компании. Много лет я занимаюсь ИТ и принял решение двигаться дальше, решил релоцироваться в Лондон.

Уже почти 3 года я готовлюсь к собеседованиям в Европу. Делюсь своим опытом по релокации и о многом другом в моем чате @artur_speaking. Пощу без духоты и пафоса. Жду вас.
⚙️ Nginx Access Log Analyzer and Dashboard Generator

✔️Bash-скрипт, который анализирует логи доступа Nginx и генерирует подробную HTML-панель с ключевыми метриками, связанными с веб-трафиком, безопасностью и производительностью.

➡️ Скрипт анализирует логи и собирает такую информацию, как:
▶️Количество запросов. Общее число полученных запросов.
▶️Уникальные IP. Список уникальных клиентских IP, делающих запросы.
▶️Количество ошибок. Число HTTP-ошибок (например, 4xx, 5xx ошибки).
▶️Анализ безопасности. Обнаружение потенциальных проблем с безопасностью, включая попытки SQL-инъекции, обхода директорий и XSS-попытки.
▶️Самые частые IP и URL. Идентификация наиболее часто используемых IP-адресов и URL, что полезно для выявления возможных источников всплесков трафика или угроз безопасности.

➡️ В результате на выходе получается интерактивная HTML-панель, которую можно использовать для анализа трафика и мониторинга безопасности.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Свежие вакансии для разработчиков, которых нет на hh

Выбери своё направление и подпишись

🔽

1. Python

2. Java

3. React

4. JavaScript

5. Web 3.0

6. Back end

7. Data Engineer

8. IT продажи

9. IT поддержка

10. PHP

11. 1С 

12. GO

13. QA

14. Flutter

Полный список каналов IT-вакансий: @best_itjob и @it_rab
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Automated-Server-Monitoring-and-Alerting-with-Bash-Script-and-AWS-SNS

✔️Скрипт предназначен для автоматизации задач мониторинга сервера на Ubuntu с использованием AWS SNS для отправки оповещений в реальном времени при достижении критических порогов.

➡️ Некоторые особенности скрипта:
▶️мониторинг использования CPU, RAM и дискового пространства на сервере Ubuntu
▶️использование команд AWS CLI для отправки оповещений через AWS SNS
▶️настраиваемые пороги для оповещений об использовании CPU, RAM и диска
▶️отправка оповещений в реальном времени в тему AWS SNS для мониторинга и уведомления.

➡️ Перед запуском скрипта необходимо заменить место holders фактическими учётными данными AWS и ARN темы SNS. Также нужно убедиться, что на сервере Ubuntu установлена и настроена AWS CLI.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Получите миллион на перенос IT-инфраструктуры ⚡️

Перенесите ваши проекты в Selectel и получите до 1 000 000 бонусов, бесплатную консультацию от архитекторов Selectel и помощь в переносе от опытной командой DevOps-инженеров.

В Selectel более 50+ совместимых продуктов для проектов любой сложности. Это значит, что вы сможете разместить всю IT-инфраструктуру у одного провайдера.

Используйте выделенные или облачные серверы, масштабируйте ресурсы в зависимости от нагрузки, безопасно храните и обрабатывайте данные, запускайте производительные веб-сервисы в облаке Selectel.

Selectel — один из ведущих провайдеров IT-инфраструктуры в России. Их сервисами пользуются уже более 25 тысяч клиентов с совершенно разными проектами: от сервисов онлайн-бронирования до образовательных платформ. Перенесите и вы свой проект в Selectel бесплатно!

Регистрируйтесь в панели управления и оставляйте заявку на участие в акции: https://slc.tl/zspiy

Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqwyJZiL
⚙️ Разница между определением переменных Bash с и без export

✔️Мы определяем переменную с помощью export, чтобы сделать ее доступной для всех подпроцессов (или дочерних процессов).
export variable_name=value

▶️Переменная доступна для любого подпроцесса, который вы запускаете из этого процесса оболочки.
Если вы определяете переменную без экспорта, как показано ниже:
variable_name=value

Переменная ограничена оболочкой и недоступна для любого другого подпроцесса.

▶️Вы можете использовать это для временных и/или циклических переменных.
Давайте определим переменную с именем «itsecforu» без «экспорта», как показано ниже:
$ itsecforu="Welcome to www.itsecforu.ru!"

Теперь отобразим значение с помощью команды «echo»:
$ echo $itsecforu

Будет отображено значение переменной itsecforu.ru:
Welcome to www.itsecforu.ru!

▶️Теперь запустите новый сеанс оболочки Bash, выполнив следующую команду:
 $ bash

Затем попробуйте отобразить значение переменной itsecforu с помощью команды «echo»:
$ echo $itsecforu

Видите?
Система ничего не возвращает!
Вы видите только пустой вывод.

➡️ Следовательно, доказано, что когда мы определяем переменную без экспорта, она не будет доступна дочерним процессам.

▶️Давайте снова определим ту же переменную с опцией экспорта:
$ export itsecforu="Welcome to www.itsecforu.ru!"

Выведем значение переменной:
$ echo $itsecforu

Пример вывода:
Welcome to www.itsecforu.ru!

Начнем новый сеанс оболочки. Попробуйте еще раз отобразить значение переменной:
$ echo $itsecforu

Теперь система вернет значение.

➡️ Следовательно, экспорт делает переменную доступной для любых других дочерних процессов в этой среде оболочки.

🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Вебинар
QoS в коммутаторах Eltex 24хх/34хх серии

🗓 31.01.2025
🕒 14:00 по МСК

Теория и Практика:
- Базовый и расширенный QoS
- Механизмы классификации трафика
- Доступные алгоритмы организации очередей
- Практические тесты с применением генератора трафика Cisco TRex

👉 Регистрация

Ведущий вебинара:
Алексей Листаров — инженер с многолетним опытом работы в крупном операторе связи. Сертифицированный преподаватель Академии Eltex.

#eltex #eltexcm #webinar #вебинар #mes

@eltexcm

#реклама
О рекламодателе
⚙️ sshudo

✔️Минимальная замена команды sudo на основе SSH для использования с командами, которые содержат параметры с пробелами или пустые параметры.

➡️ Использование:
▶️Нужно использовать sshudo перед ограниченной командой, которую можно выполнить только от имени пользователя root. Тогда система запросит пароль, после его ввода запустит команду.

➡️ Некоторые ограничения:
▶️не будет работать, если параметры содержат одну или несколько одинарных кавычек
▶️не позволяет передавать параметры SSH, для этого нужно использовать ~/.ssh/config
▶️работает только для получения привилегий пользователя root.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Бросаем костыли и внедряем Service Mesh

🔸 Слабый мониторинг или его нет совсем. Непонятно, почему система тормозит.
🔸 Клиенты жалуются на ошибки и долгое время ответа.
🔸 Нужно выкатить новую фичу, но нет уверенности, что всё пойдет как надо.

Знакомо? Значит, пора задуматься о новых решениях для своего проекта.

Приглашаем на трёхдневный онлайн-интенсив по Service Mesh от Слёрм, на котором разберём автоматический мониторинг, chaos engineering, мультикластерное взаимодействие и многое другое.

Чтобы разобраться в технологии, вы на интенсиве:

👉 решите реальные бизнес-кейсы;
👉 поймёте принцип работы и в дальнейшем сможете применить знания на любом решении;
👉 научитесь искать причины проблем.

Даты проведения: 28.02-03.03. 
Специальные условия группам от 3-х человек.

👉 Программа и запись на интенсив по ссылке.

#реклама
О рекламодателе
⚙️ Система мониторинга на bash’е

✔️Система мониторинга на bash’е хороша тем, что все для ее работы на машине скорее всего уже есть.

➡️ Принципы работы
▶️Прежде чем начинать писать, надо определиться, как будет устроена наша система мониторинга. Пусть у нас будет только серверная часть, клиентской части не будет. И задача у нас будет только одна — проверять, в сети ли машина, за которой мы следим, точнее, пингуется ли она. Для больших сетей такой вариант не подойдет, возможно, будет недостаточно информативен, а для небольшой локальной сети на пару десятков машин его может быть вполне достаточно.

▶️Сервер мониторинга будет раз в указанное количество минут запускать скрипт мониторинга для каждой машины, входящей в список машин, за которыми мы наблюдаем. Если хост не пингуется, то будет отправлено простое электронное письмо.

▶️Назовём систему мониторинга, желательно оригинально — Byams (Bash-written Yet Another Monitoring Script). Написанный на баше еще один скрипт мониторинга. :) Будем надеяться, что это название еще не занято.

➡️ Приступим
▶️Начнем с подключения хоста к нашей системе мониторинга. На практике это просто запись информации об адресе или доменном имени хоста в какой-то файл. Пусть это будет /etc/byams/hosts.
Вот пример этого файла:
192.168.0.10

▶️Для простоты будем писать один единственный файл скрипта, который будет добавлять в мониторинг хост, удалять из мониторинга хост и мониторить хосты, находящиеся в списке. И выглядеть это будет следующим образом:
byams add 
byams remove
byams

▶️Если скрипт запущен без параметров, он просто запустит мониторинг всех хостов, находящихся в данный момент в списке.

▶️Давайте вынесем файл с настройками в директорию /etc/byams. Вы можете вынести этот файл в любую директорию, доступную пользователю, от имени которого скрипт будет запускаться, поскольку он не требует привилегий суперпользователя для своей работы, достаточно прав обычного пользователя.

➡️ Подробно
▶️В файле настроек будет находиться следующее:
# Директория, где будет храниться файл с данными
DATA_DIR="/etc/byams"
# Название самого файла для хранения данных
DATA_FILE_NAME="hosts"
# Адрес электронной почты, на который будут посылаться оповещения о недоступности хостов
MAILTO=root@localhost

▶️Вот как будет выглядеть сам скрипт:
#!/bin/bash

# Подключаем файл настроек
. /etc/byams/byams.conf

# Формируем полное имя файла с данными
DATA_FILE="$DATA_DIR/$DATA_FILE_NAME"

add_to_monitoring(){
# Дописываем IP-адрес или имя хоста в файл данных
echo $2 >> $DATA_FILE
}

remove_from_monitoring(){
# Удаляем IP-адрес или имя хоста из файла данных
sed -i '/$2/d' $DATA_FILE
}

run_monitoring(){
# Для каждого хоста из списка, содержащегося в файле данных
# последовательно выполняем функцию check_host
for HOST in cat $DATA_FILE
do
check_host $HOST
done
}

check_host(){
# Функция check_host может содержать любые действия по проверке
# доступности одного хоста и реакции на недоступность этого хоста
# В нашем случае мы просто посылаем один ICMP-пакет, и если пришел ответ, значит
# всё в порядке, если не пришел, то переменная RESULT получит пустое значение
RESULT=ping -c 1 $1 | grep ttl
if [ "$RESULT" == "" ]
then
# А здесь будут выполнены действия по извещению о недоступности хоста
# Мы просто посылаем письмо о том, что хост, который мы проверяем, недоступен
MESSAGE="$1 is unavailable"
echo "$MESSAGE" | mail -s "$MESSAGE" $MAILTO
fi
}

case "$1" in
add)
add_to_monitoring $2
;;
remove)
remove_from_monitoring $2
;;
*)
run_monitoring
;;
esac

▶️Вот такая простая система мониторинга, состоящая из одного скрипта на bash’е, у нас получилась. Вы можете ее расширить так, как вам это необходимо.

➡️ Автоматический запуск
Автоматический запуск можно обеспечить, включив вызов скрипта в таблицу заданий cron’а.

🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Network Admin
Команда nc (NetCat): «Сетевой швейцарский армейский нож»

NetCat, или просто nc, — это мощная и универсальная утилита для работы с сетями. Её часто называют «сетевым швейцарским ножом» из-за множества задач, которые она может выполнять.

nc поддерживает работу с TCP, UDP и UNIX-сокетами, и её возможности делают её незаменимым инструментом для администраторов и специалистов по сетевой безопасности.

Что умеет NetCat?
• Устанавливать TCP-соединения.
• Прослушивать порты TCP и UDP.
• Сканировать порты (как одиночные, так и диапазоны).
• Выступать в роли простого TCP-прокси.
• Проверять доступность удалённых портов.
• Тестировать сетевые службы и демоны.
• Передавать файлы между компьютерами в связке с другими инструментами, например, pv.

Примеры использования:

1️⃣Сканирование портов
Чтобы просканировать несколько конкретных портов на сервере, используйте следующую команду:

$ nc -zv server2.merionet.lan 21 22 80 443 3000


Здесь:
• -z — не устанавливать соединение, а только проверить доступность порта.
• -v — выводить дополнительную информацию (режим verbose).

2️⃣ Сканирование диапазона портов
Для проверки диапазона портов, укажите его через дефис:

$ nc -zv server2.merionet.lan 20-90


3️⃣ Установка TCP-соединения
Открыть TCP-соединение с портом 5000 на удалённом сервере с использованием источника порта 3000 и тайм-аутом в 10 секунд:

$ nc -p 3000 -w 10 server2.merionet.lan 5000


Здесь:
• -p — исходный порт (3000).
• -w — время ожидания (10 секунд).

N.A.
Please open Telegram to view this post
VIEW IN TELEGRAM
☁️ Облака, облака повсюду

Российские компании активно используют облачные технологии и мы видим этому подтверждение на всевозможных "облачных" конференциях.

🖼 Как с их помощью решаются конкретные задачи бизнеса в условиях санкций, ужесточения требований регуляторов, растущих расходов на инфраструктуру?
🖼 Как сделать облако безопасным?

Приглашаем на открытую конференцию K2 Cloud Conf.

У ребят планируется много технических докладов: от обзоров новых типов сетевых дисков до приоритетов бизнеса в области ИТ. Будет интересно.

📅 Когда: 4 марта 2025

👆 Участие бесплатное, ссылка на регистрацию тут
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Создание переменных, доступных только для чтения, а также неизменяемых переменных в Bash

✔️Иногда немного дополнительной ясности может быть очень полезно, например, четко указать, что переменная не будет меняться.

▶️Внутри функции в Bash вы можете использовать ключевое слово local для определения переменной, и она может быть доступна только для чтения с помощью флага -r.

➡️ Вот несколько примеров использования и результатов:
#!/usr/bin/env bash

set -o errexit
set -o pipefail
set -o nounset

function mutable {
local status="pending"

status="completed"

# This line will echo "completed".
echo "${status}"
}

function immutable {
local -r status="pending"

# This line throws an error: "status: readonly variable"
status="completed"

# This line is never reached.
echo "${status}"
}

mutable
immutable

▶️Если вы хотите объявить переменные только для чтения вне функции, вы можете использовать declare -r status=”pending”, в то время как declare status=”pending” или status=”pending” оба являются изменяемыми.

▶️В случае с read-only вы получите ту же ошибку, что и выше, если попытаетесь ее изменить.

➡️ Помните, что declare и local не соответствуют POSIX, поэтому, если вам нужна максимальная совместимость между оболочками, вам стоит рассмотреть другие варианты, например, использование readonly status=”pending”.

▶️Я предпочитаю использовать declare -r, когда знаю, что мне не нужно соответствие POSIX, потому что declare используется для других вещей, например, для определения ассоциативных массивов.

▶️Наконец, стоит отметить, что если вы попытаетесь снять значение переменной, например unset status, а она доступна только для чтения, то получите сообщение об ошибке, в котором будет сказано, что вы не можете снять значение переменных, доступных только для чтения.

▶️Ясно выражать свои намерения полезно при чтении кода. Если в большом скрипте вы видите readonly, declare -r или local -r, вы можете быть уверены, что больше ничего не измените, а если измените, то скрипт выдаст ошибку, что поможет избежать случайной перезаписи значения.

🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Открытый урок «Инструменты и методы мониторинга серверов на платформе Windows Server»

🗓 10 февраля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Администратор Windows» от Otus.

На вебинаре вы узнаете:
✔️ Основные подходы к мониторингу серверов и выявлению проблем в инфраструктуре.
✔️ Как использовать встроенные инструменты Windows Server: Performance Monitor, Event Viewer и другие.
✔️ Обзор сторонних решений для мониторинга серверов и сети.
✔️ Практические рекомендации по настройке автоматического уведомления и отчетности.

🔗 Ссылка на регистрацию: https://otus.pw/zgIN/?erid=2W5zFGn1KQL

#реклама
О рекламодателе
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Полезные алиасы в Bash

✔️Операционная система Linux имеет в своем составе множество инструментов, которые могут существенно облегчить жизнь системным администраторам, особенно начинающим, для которых работа с консольными командами, использующими множество различных параметров зачастую кажется слишком сложной. В этой статье мы поговорим об использовании алиасов и разберем примеры создания наиболее полезных.

➡️ Содержание статьи:
▶️Временный алиас
▶️Добавляем в Bash
▶️Виртуальные среды и сети
▶️Полезности для Docker
▶️Заключение

🖼️ Прочитать на Habr'e

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Try-Catch в Bash: Обработка ошибок в скриптах Bash

✔️В этой статье мы рассмотрим пять методов обработки ошибок в скриптах Bash, начиная от удобных для новичков и заканчивая более сложными подходами.
В Bash обработка ошибок может осуществляться различными способами, несмотря на то, что в языке нет прямого блока try-catch, как в таких языках, как Python или JavaScript.

▶️Ниже мы рассмотрим пять методов, каждый из которых по мере возрастания сложности позволяет отлавливать и обрабатывать ошибки в скриптах Bash.

➡️ Базовая проверка ошибок с помощью статуса выхода
▶️Самый простой способ обработки ошибок в Bash – это проверка статуса выхода команды.
В Bash каждая команда по завершении возвращает код выхода.
Код выхода, равный 0, означает успех, а любой ненулевой код выхода означает неудачу.
#!/bin/bash

mkdir /root/test_dir
if [ $? -ne 0 ]; then
echo "Error: Failed to create directory."
exit 1
fi
echo "Directory created successfully."

▶️В этом методе мы запускаем команду и сразу же проверяем статус выхода с помощью переменной $? Если статус ненулевой, мы выводим сообщение об ошибке и выходим из скрипта.

➡️ Использование команды ‘set -e’ для выхода при ошибке
▶️Вы можете использовать команду set -e для указания скрипту немедленно выйти, если какая-либо команда возвращает ненулевой статус.
Это полезно для скриптов, в которых необходимо убедиться, что любой сбой останавливает выполнение.
#!/bin/bash
set -e

mkdir /root/test_dir
echo "Directory created successfully."

▶️Если использовать set -e, скрипт автоматически завершается при неудачном создании каталога, что избавляет вас от необходимости вручную проверять статус выхода после каждой команды.

➡️ Обработка ошибок с помощью trap
▶️Bash предоставляет команду trap для перехвата сигналов и ошибок.
Вы можете определить trap для выполнения определенных команд при возникновении ошибки.
#!/bin/bash
trap 'echo "An error occurred. Exiting..."; exit 1;' ERR

mkdir /root/test_dir
echo "Directory created successfully."

▶️Здесь команда trap фиксирует любые ошибки (сигнализируемые ключевым словом ERR) и запускает указанный код обработки ошибок.

➡️ Перенаправление ошибок в файл логов
▶️Вместо отображения ошибок на консоли вы можете перенаправить их в файл журнала для лучшей отладки.
#!/bin/bash

exec 2>error_log.txt

mkdir /root/test_dir
if [ $? -ne 0 ]; then
echo "Error: Failed to create directory."
exit 1
fi
echo "Directory created successfully."

▶️В этом методе строка exec 2>error_log.txt перенаправляет стандартную ошибку (дескриптор файла 2) в файл журнала, что позволяет просмотреть подробности ошибки позже.

➡️ Пользовательская функция обработки ошибок
▶️Для более сложной обработки ошибок вы можете создать пользовательскую функцию для обработки различных типов ошибок, что добавит гибкости вашим скриптам.
#!/bin/bash

handle_error() {
echo "Error on line $1"
exit 1
}

trap 'handle_error $LINENO' ERR

mkdir /root/test_dir
echo "Directory created successfully."

▶️В этом методе функция handle_error срабатывает всякий раз, когда происходит ошибка, предоставляя точный номер строки, в которой произошел сбой, что помогает более эффективно отлаживать.

➡️ Возможно, в скриптах Bash и нет встроенной функции try-catch, но с помощью различных методов, таких как проверка состояния выхода, команды-ловушки и пользовательские функции обработки ошибок, вы можете эффективно справляться с ошибками.

🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM