Пошаговая отладка Bash-скриптов

отладка Bash-скрипта

Полезный лайфхак для тех, часто пишет свои bash-скрипты и, особенно, кто только начинает это делать. Ведь если скрипт не работает, то порой сложно определить на каком шаге происходит сбой. Особенно если код скрипта объёмный, то совсем труба. И вот тут есть волшебная строчка! Её нужно добавить после #!/bin/bash и тогда bash-скрипт можно будет отлаживать по шагам.

Вот пример листинга простейшего bash-скрипта с пошаговой отладкой:


#!/bin/bash
trap ‘echo «# $BASH_COMMAND»;read’ DEBUG
echo line1
echo line2
echo line3

Используемые директивы:

  • Команда trap умеет перехватывать разные сигналы. В нашем примере она перехватывает сигнал DEBUG, посылаемый перед выполнением команды.
  • Команда read умеет ожидать с клавиатуры. У нас это нужно только для того, чтобы отловить нажатие клавиши «Enter»(Ввод) или сочетания Ctrl+C.
  • Переменная окружения $BASH_COMMAND — используется внутри обработчика команды trap.

Процесс отладки скрипта:

Запускаем скрипт. Перед выполнением каждой команды выведено то, что будет исполняться, после чего интерпретатор начинает ожидать нажатия клавиши «Enter»(Ввод).

Если мы приходим к выводу, что на каком-то этапе что-то пошло не по сценарию и выполняется не так, как нужно — нажимаем Ctrl+C и таким образом выходим из отладки.

Оставьте комментарий