Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.



Делаем ваши bash скриты юзер-френдли с помощью dialog

Рубрика: Shell
Метки: | |
Суббота, 5 июля 2008 г.
Просмотров: 21717
Подписаться на комментарии по RSS


Если вы устанавливал Linux используя текстовый установщик, возможно вы заметили что диалоги выполнены очень профессионально. Можно подумать, что при создание текстового инсталлятора использовалось экстремальное программирование. В действительности, все это создано посредством утилиты dialog. Dialog установлен по умолчанию в большинстве Linux дистрибутивов. Программа используется для профессионально выглядищях диалогов вызываемых из shell скриптов.

Создание диалогов очень легко. Ниже я расскажу как создавать диалоги различных типов.

Ячейка ввода:Этот диалог позволяет пользователям ввести строку. Так же можно перенаправить вывод в файл.

$ <span style="font-weight: bold;">dialog <span style="color: rgb(0, 0, 153);">--title</span> "Ravi's Input Box" <span style="color: rgb(0, 0, 153);">
    --inputbox</span> "Enter the parameters..." <span style="color: rgb(153, 0, 0);">
    8</span> <span style="color: rgb(153, 0, 0);">40</span></span>
Как вы видите, используемые опции вполне понятны. После две опции 8 и 40 это высота и ширина окна ввода.
Fig: Inputbox
Текстовое поле: Это окно позволяет брать файл как параметр и выводить его в окне.
$ <span style="font-weight: bold;">dialog <span style="color: rgb(0, 0, 153);">--title</span> "textbox" <span style="color: rgb(0, 0, 153);">--textbox</span> ./myfile.txt <span style="color: rgb(153, 0, 0);">22</span> <span style="color: rgb(153, 0, 0);">70</span> </span>
... эта команды выводит текст, содержащийся в myfile.txt

Fig: Textbox showing the file.
Список выбора: Пользователю выводится лист из возможных вариантов выбора и он может выбрать один или несколько вариантов используя пробел.
$ <span style="font-weight: bold;">dialog <span style="color: rgb(0, 0, 153);">--checklist</span> "Choose your favorite distribution:" </span>
<span style="font-weight: bold;">         <span style="color: rgb(153, 0, 0);">10 40 3</span> </span>
<span style="font-weight: bold;">         1 RedHat on </span>
<span style="font-weight: bold;">         2 "Ubuntu Linux" off </span>
<span style="font-weight: bold;">         3 Slackware off</span>
... в этом примере, 10 это высота бокса, 30 - ширина, 3 - число выводимых вариантов, on/off - отмечен или нет по умолчанию выбор, и в конце описания того что выбираем под номерами.
Radiolist: Пользователь может выбрать только один вариант из предложанных. В остальном тоже самое
$ <span style="font-weight: bold;">dialog <span style="color: rgb(0, 0, 153);">--backtitle</span> "Processor Selection" </span>
<span style="font-weight: bold;">         <span style="color: rgb(0, 0, 153);">--radiolist</span> "Select Processor type:" </span>
<span style="font-weight: bold;">         <span style="color: rgb(153, 0, 0);">10 40 4</span> </span>
<span style="font-weight: bold;">         1 Pentium off </span>
<span style="font-weight: bold;">         2 Athlon on </span>
<span style="font-weight: bold;">         3 Celeron off </span>
<span style="font-weight: bold;">         4 Cyrix off</span>
Информационное поле: Это полезно для отображения сообщения, которое получается в результате выполнения команды. Для примера, посмотрите код ниже.
$ <span style="font-weight: bold;">dialog <span style="color: rgb(0, 0, 153);">--title</span> "Memory Results" </span>
<span style="font-weight: bold;">         <span style="color: rgb(0, 0, 153);">--infobox</span> "<span style="font-size: 100%;">`</span>echo ;vmstat;echo ;echo ;free<span style="font-size: 100%;">`</span>"</span>
<span style="font-weight: bold;">         <span style="color: rgb(153, 0, 0);">15 85</span></span>
 Information box - listing the vmstat and free listing.
Message box
Dialog обычно используется в скриптах . Имеется другой пакет Xdialog, который дает подобный функционал для скриптов выполняемых в X Windows. Утилита Xdialog также имеет дополнительный функционал, которого нет в dialog. Для более подробного ознакомления с программой dialog используйте man dialog

Оригинал

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Комментариев: 2

  1. Ubuntu 9.10 (да и в прочих) - по умолчанию команды dialog нет, предлагает доустановить. Но при этом некоторые скрипты выводят текстовые поля, списки и прочее, обговоренное в статье. Есть еще какие-то команды?

  2. аноним | 2010-08-25 в 18:01:17

    Скриты - это в заголовке опечатка?

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

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)