TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #284 1.11K
Self-test для скриптов: проверка зависимостей, путей и прав доступа перед выполнением

Self-test в начале скрипта - это мини-проверка, которая убеждается, что все окружение готово: утилиты установлены, пути доступны, директории пишутся. Без этого легко получить «тихий фэйл». Добавим в скрипт проверку еще до основной логики.

🛠 Пример базового self-test блока


#!/bin/bash

# 💥 Включаем строгий режим
set -euo pipefail

#Список зависимостей
REQUIRED_CMDS=("curl" "jq" "awk")

#Каталоги, которые должны существовать и быть доступны
REQUIRED_DIRS=("/var/log/myapp" "/etc/myapp")

#Проверка утилит
for cmd in "${REQUIRED_CMDS[@]}"; do
command -v "$cmd" >/dev/null 2>&1 || {
echo "Требуется утилита '$cmd', но она не найдена"
exit 1
}
done

#Проверка директорий
for dir in "${REQUIRED_DIRS[@]}"; do
[[ -d "$dir" ]] || {
echo "Каталог $dir не существует"
exit 1
}
[[ -w "$dir" ]] || {
echo "Нет прав на запись в $dir"
exit 1
}
done

#Проверка прав запуска от root (если нужно)
if [[ $EUID -ne 0 ]]; then
echo "Скрипт должен быть запущен от root"
exit 1
fi

echo "Self-test пройден успешно. Продолжаем выполнение..."


❓ Что еще можно проверять?

📍 Наличие переменных окружения
📍 Работу с удаленными API (curl --silent --fail)
📍 Целостность файлов настроек
📍 Доступность сервисов (systemctl is-active)

BashTex 📱 #bash
  • 👍 10
More from @bash_tex
  1. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  2. Oct 9, 2026BashTex 📱 #мем
  3. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  4. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  5. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  6. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
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 →