Вход/Регистрация
Linux: Полное руководство
вернуться

Аллен Питер В.

Шрифт:

"Демон" "Лермонтов" on 2> $tempfile

retval=$?

choice=`cat $tempfile`

case $retval in

0)

 echo "Вы выбрали '$choice'";;

1)

 echo "Нажата Cancel";;

255)

 echo "Нажата ESC";;

esac

25.6. Организация меню

Виджит MenuBox очень похож на radiolist — они прямо-таки братья-близнецы, только у menubox нет слева переключателя включено/выключено. Использовать MenuBox нужно так же, как и radiolist, но не указывая on или off для элементов меню.

Листинг 25.7. Меню

#!/bin/sh

DIALOG=${DIALOG=dialog}

tempfile=`tempfile 2>/dev/null` ||( tempfile=/tmp/test$$

trap "rm -f $tempfile" 0 1 2 5 15

$DIALOG --clear --title "MENU BOX" \

 --menu "Этот виджит поможет вам организовать небольшое меню \n\

 MENU BOX предоставляет пользователю выбрать один вариант\

 из списка \n\

 Данный виджит также позволяет прокручивать возможные варианты \n\

 Вы можете использовать стрелки ВВЕРХ/ВНИЗ, а также клавиши \n\

 1-9 для выбора.\n\

 Выберите вашу ОС:" 2 0 71 4 \

"Linux" "А что, разве есть другие операционные системы" \

"FreeBSD" "Это лучшая ОС" \

"Windows" "Мы кроме Windows ничего не видели..." \

"MSDOS" "На моей двойке ничего другого не запускается :(" 2> $tempfile

retval=$?

choice=`cat $tempfile`

case $retval in

0)

 echo "Ваш выбор '$choice'";;

1)

 echo "Нажата Cancel";;

255)

 echo "Нажата Esc.";;

esac

Рис. 25.5. Виджит menubox

25.7. Календарь

Этот виджит позволяет пользователю удобно ввести дату. Работать с ним нужно так: с помощью клавиши Tab выбираете нужный элемент управления: кнопка OK, Cancel, поле изменения месяца, поле изменения года, поле выбора числа; с помощью стрелок вверх/вниз указываете нужное значения месяца, года, числа и нажимаете <Ввод>. Выбранная вами дата будет отображена на консоли.

Листинг 25.8. Календарь

#!/bin/sh

: ${DIALOG=dialog}

USERDATE=`$DIALOG --stdout --title "CALENDAR" —calendar\

"Выберите дату..." \

0 0 1 1 2004`

case $? in

0)

 echo "Вы выбрали дату: $USERDATE.";;

1)

 echo "Нажата Cancel.";;

255)

 echo "Диалог закрыт";;

esac

Рис. 25.6. Календарь

25.8. Шкала прогресса

Для информирования пользователя о ходе процесса, например, копирования или обработки файла, целесообразно использовать виджит gauge (шкала прогресса).

Листинг 25.9. Шкала прогресса

#!/bin/sh

DIALOG=${DIALOG=dialog}

PCT=10

(

 while test $PCT != 100

 do

echo "XXX"

echo $PCT

echo "Выполнено\n\

($PCT %)"

echo "XXX"

PCT=`expr $PCT + 10`

# засыпаем на 1 секунду, 1 секунда - это 10%

sleep 1

 done

) |

$DIALOG --title "Шкала" --gauge "Шкала" 20 70 0

  • Читать дальше
  • 1
  • ...
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: