Шрифт:
Отладка сценариев
Обычно отлаживать сценарии командной оболочки довольно легко, хотя специальных вспомогательных средств отладки не существует. В этом разделе мы дадим краткий обзор наиболее распространенных приемов.
Когда возникает ошибка, командная оболочка, как правило, выводит на экран номер строки, содержащей ошибку. Если ошибка сразу не видна, вы можете добавить несколько дополнительных команд
Поскольку сценарии обрабатываются интерпретатором, нет затрат на компиляцию при корректировке и повторном выполнении сценария. Основной способ отслеживания наиболее трудно выявляемых ошибок — задание различных опций командной оболочки. Для этого вы можете применять опции командной строки после запуска командной оболочки или использовать команду
Таблица 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 | Выдает сообщение об ошибке при использовании неопределенной переменной |
Вы можете установить опции с помощью флагов
Для установки опции
Для того чтобы снова отключить эту опцию, применяйте следующую команду:
Уровень выполняемых подстановок задается (по умолчанию) количеством знаков
В командной оболочке также можно выяснить состояние программы после ее завершения, перехватив сигнал
По направлению к графическому режиму — утилита dialog
Прежде чем мы закончим обсуждение сценариев командной оболочки, обратимся к еще одному средству, которое, хотя, строго говоря, и не является частью оболочки, в основном полезно применять именно в программах командной оболочки.
Если вы знаете, что ваш сценарий придется выполнять только с консоли ОС Linux, существует довольно изящный способ оживить сценарий, применяя служебную команду
В некоторых дистрибутивах команда
Общая концепция утилиты
Прежде чем переходить к подробностям, давайте рассмотрим очень простой пример применения утилиты
На экране появится графическое информационное окно, дополненное кнопкой OK (рис. 2.3).
Рис. 2.3
Теперь, когда вы убедились в простоте утилиты
Таблица 2.20