Делаем ваши bash скриты юзер-френдли с помощью dialog
Рубрика: Shell
Метки: Linux | Linux утилиты | shell
Суббота, 5 июля 2008 г.
Просмотров: 21717
Подписаться на комментарии по RSS
Метки: Linux | Linux утилиты | 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
Еще записи по теме
- iRedMail: Установка полноценного почтового сервера с LDAP, Postfix, RoundCube, Dovecot, ClamAV, DKIM, SPF в CentOS 5.x, часть 2
- Небольшой совет - как отучить Linux запоминать пароль при использовании sudo
- Автоматически разлогиниваем пользователей BASH / TCSH / SSH в случае неактивности сеансов
- 10 базовых основ Linux применимых к управлению VMware ESX
- Iptables - ограничение количества подключений с IP
- 5 способов поиска файлов в Linux, используя терминал.
- Что такое хорошо и что такое плохо?
Комментариев: 2
Ubuntu 9.10 (да и в прочих) - по умолчанию команды dialog нет, предлагает доустановить. Но при этом некоторые скрипты выводят текстовые поля, списки и прочее, обговоренное в статье. Есть еще какие-то команды?
Скриты - это в заголовке опечатка?