| Опция командной строки | Опция команды 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
По направлению к графическому режиму — утилита
Прежде чем мы закончим обсуждение сценариев командной оболочки, обратимся к еще одному средству, которое, хотя, строго говоря, и не является частью оболочки, в основном полезно применять именно в программах командной оболочки.
Если вы знаете, что ваш сценарий придется выполнять только с консоли ОС Linux, существует довольно изящный способ оживить сценарий, применяя служебную команду dialog
В некоторых дистрибутивах команда dialog
gdialog. Он очень похож, но рассчитан на пользовательский интерфейс GNOME, применяемый для отображения диалоговых окон команды. В этом случае вы получите настоящий графический интерфейс. Как правило, в любой программе, использующей команду dialog, можно заменить все вызовы этой команды на gdialog, и вы получите графическую версию вашей программы. В конце этого раздела мы покажем пример программы, использующей команду gdialog.Общая концепция утилиты dialog
Прежде чем переходить к подробностям, давайте рассмотрим очень простой пример применения утилиты dialog