25.4. Окно ввода текста

25.4. Окно ввода текста

Следующим по частоте применения после информационных виджитов и виджита yes-no следует виджит ввода текстовой информации — Inputbox. Принцип работы данного виджита следующий:

? Мы определяем имя временного файла, в который будет записано введенное пользователем сообщение.

? Вызываем программу dialog с параметром --inputbox.

? Перенаправляем вывод программы во временный файл (программа выведет введенное пользователем значение).

? Выводим или обрабатываем каким-либо другим способом содержимое временного файла.

Листинг 25.4. Виджит Inputbox

#!/bin/sh

DIALOG=${DIALOG=dialog}

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

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

$DIALOG --title "INPUT BOX" --clear

--inputbox "Данный виджит используется для ввода

информации

Введите свое имя:" 16 51 2 > $tempfile

retval=$?

case $retval in

0)

 echo "Вы ввели `cat $tempfile`";;

1)

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

255)

 if test -s $tempfile ; then

  cat $tempfile

 else

  echo "Нажата ESC."

 fi

 ;;

esac

Рис. 25.3. Виджит InputBox

Значения, возвращаемые программой dialog:

? 0, если пользователь что-то ввел и нажал Enter или просто нажал <Ввод>, не введя ничего (тогда временный файл будет пуст);

? 1, если пользователь нажал Cancel;

? 255, если пользователь нажал Esc.

Данный текст является ознакомительным фрагментом.