Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Вы можете установить опции с помощью флагов
-о
+о
xtrace
xtrace
Для установки опции
xtrace
set -о xtrace
Для того чтобы снова отключить эту опцию, применяйте следующую команду:
set +о xtrace
Уровень выполняемых подстановок задается (по умолчанию) количеством знаков
+
+
PS4
В командной оболочке также можно выяснить состояние программы после ее завершения, перехватив сигнал
EXIT
trap 'echo Exiting: critical variable = $critical_variable' EXIT
По направлению к графическому режиму — утилита dialog
Прежде чем мы закончим обсуждение сценариев командной оболочки, обратимся к еще одному средству, которое, хотя, строго говоря, и не является частью оболочки, в основном полезно применять именно в программах командной оболочки.
Если вы знаете, что ваш сценарий придется выполнять только с консоли ОС Linux, существует довольно изящный способ оживить сценарий, применяя служебную команду
dialog
В некоторых дистрибутивах команда
dialog
gdialog
dialog
gdialog
gdialog
Общая концепция утилиты
dialog
Прежде чем переходить к подробностям, давайте рассмотрим очень простой пример применения утилиты
dialog
dialog --msgbox "Hello World" 9 18
На экране появится графическое информационное окно, дополненное кнопкой OK (рис. 2.3).
Рис. 2.3
Теперь, когда вы убедились в простоте утилиты
dialog
Таблица 2.20
Тип диалогового окна | Опция, применяемая для создания окна этого типа | Назначение окна |
---|---|---|
Окна с флажками (Check boxes) | --checklist | Позволяет отображать список флажков, каждый из которых можно установить или сбросить |
Информационные окна (Info boxes) | --infobox | Простое немедленное отображение в окне, без очистки экрана, возвращаемых данных |
Окна ввода (Input boxes) | --inputbox | Позволяет пользователю вводить в окно текст |
Окна меню (Menu boxes) | --menu | Позволяет пользователю выбрать один пункт из списка |
Окна сообщений (Message boxes) | --msgbox | Отображает сообщения для пользователей и снабжено кнопкой OK, которую они должны нажать для продолжения |
Окна с переключателями (Radio selection boxes) | --radiolist | Позволяет пользователю выбрать один переключатель из списка |
Текстовые окна (Text boxes) | --textbox | Позволяют отображать содержимое файла в окне с прокруткой |
Диалоговые окна Да/Нет (Yes/No boxes) | --yesno | Позволяют задать вопрос, на который пользователь может ответить "Да" или "Нет" |
Доступны также и некоторые дополнительные типы диалоговых окон (например, индикатор процесса или окно ввода пароля). Если вы хотите узнать побольше о необычных типах диалоговых окон, как всегда подробную информацию можно найти на страницах интерактивного справочного руководства.
Для получения вывода из диалогового окна любого типа, допускающего текстовый ввод или выбор, вы должны перехватить стандартный поток ошибок, как правило, направляя его во временный файл, который вы сможете обработать позже. Для получения ответа на вопросы типа "Да"/"Нет", просто проверьте код завершения, который, как и во всех соблюдающих приличия программах, в случае успеха возвращает 0 (т. е. выбор ответа "Да" (Yes)) и 1 в остальных случаях.
У всех типов диалоговых окон есть дополнительные управляющие параметры, такие как размер и контур отображаемого окна. В табл. 2.21 перечислены разные параметры, необходимые окнам каждого типа, а затем демонстрируется использование некоторых из них в командной строке. В заключение вы увидите простой пример, объединяющий в одной программе несколько диалоговых окон разных типов.