TGViewer
Admin Portal | Сисадмин Admin Portal | Сисадмин @sysadmin_portal · 6.66K subscribers
Post #1175 1.21K
Для отладки bash-скриптов существует инструмент set -xve. Это мастхев фича именно на момент, создания чего-либо т. к. не всегда логика может работать правильно, а с set -xve, можно вовремя увидеть все значения переменных и т.п. не используя мусорные конструкции, например, echo «Error in function xxx».

Применяется так:
#!/bin/bash -xve
set -xve


Основные флаги set:

x — вывести команды и их аргументы по мере их выполнения.
v — вывести строки ввода командной строки по мере их считывания.
e — выход, если команда завершается с ненулевым статусом.

Пример:

Изменяем PS4 и добавляем вывод номера строки во включенный дебаг режим:
#!/bin/bash -xve

PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'

bar=10
echo ${bar}
echo $((6 + 6))


После выполнения мы видим:
bar=10
+(./script.sh:6): foo=10
echo ${bar}
+(./script.sh:7): echo 10
10
echo $((6 + 6))
+(./script.sh:8): echo 12
4


Теперь если скрипт где-то вылетает с плохим статусом, всегда можно узнать в какой строке это приключилось

Немного украшательств, экспортируем PS4:
PS4='\033[0;33m+(${BASH_SOURCE}:${LINENO}):\033[0m ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'


Происходит подкрашивание запускаемых строчек.

С помощью PS4 можно отладить shell-скрипт, задав при его выполнении set -x, что позволяет выводить каждую команду, а затем ее результаты. Перед каждой командой ставится знак +, эту строку подсказки «+» можно изменить, определив переменную PS4.

@SysAdmin_Portal
  • 👍 6
More from @sysadmin_portal
  1. Oct 5, 2026Совет по Linux: просмотр процессов с помощью ps Хотите узнать, какие процессы запущены в с…
  2. Oct 5, 2026Совет по Linux: замена символов с помощью tr Хотите заменить символы в тексте, не открывая…
  3. Oct 4, 2026DevOps-инструмент недели: Radar При диагностике Kubernetes приходится переключаться между…
  4. Oct 4, 2026Linux-совет: как собрать файлы и папки в один архив Выполните: tar -cvf archive.tar filena…
  5. Oct 3, 2026Linux-совет: Хотите быстро проверить, сколько CPU и памяти потребляют запущенные процессы?…
  6. Oct 3, 2026Как работает Kubernetes Cluster Autoscaler? Базовая схема: Pod в состоянии Pending → Clust…
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 →