Шрифт:
echo "Sorry $USER you have not been authorised to use this menu"
exit 1
fi
}
# вызывается, если пользователь выполняет выход из программы
my_exit
{
#my_exit
#вызывается, если пользователь выбирает выход из сценария!
colour black_white
cursor on
rm *.$$
exit 0
}
tput init
# отображение на экране уровня доступа пользователя
if user_level; then
ACCESS="Access Mode ls High"
else
ACCES3="Access Mode ls Normal"
fi
tput init
while :
do
tput clear
colour black_green
cat < MAYDAY
$ACCESS
MAYDAY
colour black_cyan
echo -e -n "\tYour Choice [1,2,3,4,5,P, H,Q] >"
@ read CHOICE
CHOICE=`get_char`
case $CHOICE in
1) ls ;;
2) vi ;;
3) who ;;
if userlevel; then
ls -l |wc
else
restrict
fi ;;
5)
if userlevel; then
sort /etc/passwd
else
restrict
fi ;;
esac
echo -e -n "\tHit the return key to continue"
read DUMMY
done
Подобное меню можно вызвать с помощью команды exec (из файла profile). Пользователи не могут изменить эту последовательность действий. Такой подход распространен в случае с пользователями, работающими только с приложениями UNIX или Linux и не использующими возможности интерпретатора shell.
21.3. Заключение
Команда tput позволяет значительно улучшить контроль со стороны пользователей за выполнением сценариев. Применение цветов улучшает внешний вид меню. Будьте осторожны при использовании гаммы цветов; цвета могут быть привлекательны для вас, но не отвечать вкусам пользователя, вынужденного применять сценарий. Работа со сценариями значительно облегчается при использовании управляющих символов. Это особенно проявляется в случае, когда пользователи осуществляют ввод информации путем выбора назначенных клавиш.
ГЛАВА 22
Создание экранного ввода
Когда речь идет об экранном вводе, или вводе данных, подразумевают ввод информации (в нашем случае с помощью клавиатуры), а затем — проверку достоверности введенных данных. Если данные удовлетворяют неким критериям, они сохраняются.
Существуют функции для проверки некоторых условий, например длины строки. Можно также проверить, состоит ли строка из чисел или символов. Эти функции применяются наравне с другими функциями, рассматриваемыми в данной книге.
В главе обсуждаются следующие темы:
• проверка достоверности вводимых данных;
• добавление, удаление, обновление записей и их просмотр;
• сценарии, выполняющие обновление файлов.
Материал главы может с первого взгляда показаться сложным. В этом случае советуем вначале просмотреть главу, а затем вернуться к ней позже. Реализация проверки вводимых данных требует довольно большого программного кода. Однако для выявления всех возможных ошибок код должен выполнять проверку на наличие наиболее вероятных ошибок.
Рассмотрим отдельные задачи, из которых складывается общая система по обновлению файлов, включающая такие функции, как добавление, удаление, обновление и просмотр записей. В результате создается система хранения актуальной информации О сотрудниках. Записи в файле DBFILE содержат следующие сведения:
Поле
Длина
Разрешен ввод следующей информации
Описание
Staff number
10
Числовая
Номер служащего по штатному расписанию
First name
20
Символьная
Имя служащего
Second name
20
Символьная
Фамилия служащего
Department
Accounts
Отдел, где работает служащий
IT
Services
Sales
Claims
Поля разделяются двоеточием (:). Например:
<Staff number>:<First name>:<Second name>:<Department>