Кто как отлаживает shell скрипты?

Всем привет.

Столкнулся тут с необходимостью работы с большими и навороченными shell скриптами. Скрипты дествительно накрученные.

Нужны советы, как кто отлаживает такие скрипты.

Попробовал подружить Eclipse c BashEclipse, но что-то не срастается с подбором версий, что работают друг с другом. И BashEclipse уже 3 года — ни единого коммита, похоже проект помер.
Кто какие еще пути использует.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

mywiki.wooledge.org/...ivate_Bash.27s_Debug_Mode

В частности, BASH_XTRACEFD и export PS4, может поможет.

Этот мануал, а также BashFAQ на том же ресурсе, намного лучше того, что предлагает Linux Documentation Project. Мануал поддерживается сообществом канала #bash @ freenode IRC. Там можно задавать вопросы.

VBSedit не поддерживает эти скрипты?

А Google не пробовал «спросить» с самого начала?

tldp.org/...uide/html/sect_02_03.html
Там все подробно описано (если с английским в порядке).

Слушай, статья выше — от авторов The Linux Documentation Project. Им виднее, как правильно дебажить shell-скрипты. Но ты то — знатный «девелопер», тебя этим не переубедить. Удачи!

Дополню полезными инструментами для CI/modern-bash:

Иногда полезно в скрипте вызвать shell (/bin/sh), тогда можно посмотреть окружение, какие-то файлы создались, какие переменные установились.

notepad++, принт логов. скрипты в баше должны быть не большими и их нада делить на под-скрипты которые в результате возвращают 0 или 1. тогда вместо 10 страниц кода будет всего 5 вызовов скриптов поменьше. Второй вариант это переписать все в перле.

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

#, echo и exit в нужных местах.
Если неясно чего где происходит, set -x
Если скрипты вдруг называются configure, напоминаю про autoconf.

И BashEclipse уже 3 года — ни единого коммита, похоже проект помер.

Ну всё, кошмары ночью мне теперь гарантированы.

Толсто и очень.

configure одно из немногих (двух?) мест в типичном линуксе, где большие shell-скрипты вообще встречаются. Вот написать такое, что люди потом спрашивают про отладчик для bash — вот это было очень толсто со стороны автора скриптов.

практически полноценная программа с кучей вызываемых функций. Желательно именно что-то типа полноценного отладчика. Чтобы можно было удобно по шагам идти и смотреть, где и что происходит с входом в вызываемые скрипты.

Мои соболезнования Есть bashdb, и trap ... DEBUG через который он работает.
Но imho всё закончится теми же echo, exit и set.

А не на Фортране ли писаны бинарники?
И не уровни ли считают?

Я подобного монстра видел. Тоже 100500 бинарников склеиных башем. Там после вызова бинарника и его отработки анализ вывода был и запуск следующего бинарника с соответствующими аргументами.
И считалось тоже от 4 до 12 часов.

Питона скорее всего в те годы не было. Да и надстройки уже позже писались.
По началу скорее всего экзешники запускались руками поочередно.
Т.к. машинное время было дорого и посла отработки степа данные перепроверялись.

Это не начала 90-х подход.
Это подход середины-начала 70-х.

Кстати куча современного мед. Оборудования выглядит примерно также. Куча скриптов а сверху припилен qt гуй.

Підписатись на коментарі