Книга: Основы программирования в Linux
Отладка сценариев
Отладка сценариев
Обычно отлаживать сценарии командной оболочки довольно легко, хотя специальных вспомогательных средств отладки не существует. В этом разделе мы дадим краткий обзор наиболее распространенных приемов.
Когда возникает ошибка, командная оболочка, как правило, выводит на экран номер строки, содержащей ошибку. Если ошибка сразу не видна, вы можете добавить несколько дополнительных команд echo
для отображения содержимого переменных и протестировать фрагменты программного кода, просто вводя их в командной оболочке в интерактивном режиме.
Поскольку сценарии обрабатываются интерпретатором, нет затрат на компиляцию при корректировке и повторном выполнении сценария. Основной способ отслеживания наиболее трудно выявляемых ошибок — задание различных опций командной оболочки. Для этого вы можете применять опции командной строки после запуска командной оболочки или использовать команду set
. В табл. 2.19 перечислены эти опции.
Таблица 2.19
Опция командной строки | Опция команды set |
Описание |
---|---|---|
sh -n <сценарий> |
set -о noexec set -n |
Только проверяет синтаксические ошибки; не выполняет команды |
sh -v <сценарий> |
set -о verbose set -v |
Выводит на экран команды перед их выполнением |
sh -х <сценарий> |
set -о xtrace set -x |
Выводит на экран команды после обработки командной строки |
sh -u <сценарий> |
set -o nounset set -u |
Выдает сообщение об ошибке при использовании неопределенной переменной |
Вы можете установить опции с помощью флагов -о
и сбросить их с помощью флагов +о
подобным же образом в сокращенных версиях. Получить простое отслеживание выполнения можно, используя опцию xtrace
. Для начала вы можете применить опцию командной строки, но для более тщательной отладки следует поместить опции xtrace
(задавая выполнение и сброс отслеживания выполнения) внутрь сценария, в тот фрагмент кода, который создает проблему. Отслеживание выполнения заставляет командную оболочку перед выполнением каждой строки сценария выводить на экран эту строку и подставлять в нее значения используемых переменных.
Для установки опции xtrace
используйте следующую команду:
set -о xtrace
Для того чтобы снова отключить эту опцию, применяйте следующую команду:
set +о xtrace
Уровень выполняемых подстановок задается (по умолчанию) количеством знаков +
в начале каждой строки. Вы можете заменить знак +
на что-то более осмысленное, определив переменную командной оболочки PS4
в вашем файле конфигурации оболочки.
В командной оболочке также можно выяснить состояние программы после ее завершения, перехватив сигнал EXIT
с помощью строки, подобной приведенной далее и помещенной в начале вашего сценария:
trap 'echo Exiting: critical variable = $critical_variable' EXIT
- Приложение 3 Средства разработки и отладки сценариев
- 12.5. Отладка сценария в Microsoft Script Editor
- 15.6. Отладка времени выполнения
- 15.8.2. Emacs и отладка во время выполнения
- Глава 29. Отладка сценариев
- 3. Отладка и профилирование
- Глава 15 Отладка
- Отладка сценариев в Microsoft Script Debugger
- Запуск сценариев на удаленных машинах. Контроль за ходом выполнения таких сценариев
- 7.7. Безопасность сценариев
- Ограничение сценариев
- Отладка с командной строки