Отладка bash-скриптов: инструменты, о которых мало кто

В предыдущей статье я рассказал, как писал скрипт мониторинга системы с нуля от идеи до рабочего инструмента с меню, цветным выводом и уведомлениями в Telegram. Там же выяснилось, что большинство проблем при написании bash-скриптов возникает не из-за сложной логики, а из-за незаметных ошибок: забытых токенов-заглушек, тихих падений через pipe, команд которые молча возвращают не то. Именно тогда я понял, что echo для отладкиэто каменный век. Скрипт мониторинга написан и работает. Теперь поговорим о том, что делать, когда он перестаёт работать или ведёт себя странно. Я собрал инструменты и приёмы, которые реально меняют то, как работать с bash. Не абстрактный список из документации, а вещи которые я использую сам и которые несколько раз спасали в ситуации «скрипт упал на проде, надо найти за пять минут». Для тех, кто спешит: быстрая шпаргалка

https://habr.com/ru/articles/1044660/

#bash #linux #отладка #shellcheck #bashdb #strace #set_x #devops #bash_scripting #отладка_скриптов

Отладка bash-скриптов: инструменты, о которых мало кто

В предыдущей статье я рассказал, как писал скрипт мониторинга системы с нуля от идеи до рабочего инструмента с меню, цветным выводом и уведомлениями в Telegram. Там же выяснилось, что большинство...

Хабр

Bashdb

#bash #bashdb #debugger #programming

Bashdb — утилита-дебаггер для bash скриптов. Отладка шелл-скриптов задача не частая, поэтому отладчик может пригодиться.

Проверим, с какой версией bash будем работать:

```sh
# bash --version
GNU bash, version 4.2.46(2)-release
```

Затем переходим на страницу загрузки (https://sourceforge.net/projects/bashdb/files/), и выбираем там подходящий вариант bashdb.

Скачиваем и устанавливаем:

```sh
# wget https://10gbps-io.dl.sourceforge.net/project/bashdb/bashdb/4.2-0.92/bashdb-4.4-0.92.tar.gz
# tar xvfz bashdb-4.4-0.92.tar.gz
# cd bashdb-4.4-0.92
# ./configure
# make
# make install
```
Но идеологически вернее собрать пакет через `checkinstall` и установить через пакетный менеджер.

Ну и запускаем отладку нужного скрипта:

`# bashdb -- script.sh`

Передаём параметры:

`# bashdb -- script.sh param1 param2`

bash debugger - Browse Files at SourceForge.net

bash debugger

Debugging bash scripts with the bashdb debugger | DaFoster