[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Программирование: Разработка и отладка программ


Пример программы SMIT

Программу, приведенную в данном примере, можно применять для создания собственных файлов настройки. Если добавить эти файлы в каталог SMIT, который поставляется вместе с операционной системой, то к ним можно будет обратиться с помощью пункта Приложения главного меню SMIT. Здесь представлены работающие версии разделов описания, за исключением Примера 3, в котором не устанавливается никаких языков.

#----------------------------------------------------------------
# Введение:
# Прежде чем создавать новую базу данных SMIT, необходимо решить,
# в каком месте в иерархии меню будет находиться меню вашего приложения.
# Новое меню будет ссылаться на другие меню, заголовки и 
# окна диалогов. Мы, например, вставляем указатель на новое
# меню вслед за опцией меню "Приложения". Значение next_id для пункта
# меню "Приложения" равно "apps", поэтому мы начинаем с создания
# menu_opt со значением id, равным "apps".
#----------------------------------------------------------------
sm_menu_opt:
   id           = "apps"
   id_seq_num   = "010"
   next_id      = "demo" 
   text         = "Примеры программ SMIT"
   next_type    = "m"    
 
sm_menu_opt:
   id           = "demo"
   id_seq_num   = "010"
   next_id      = "demo_queue" 
   text         = "Пример 1: Добавить очередь печати"
   next_type    = "n"    
 
sm_menu_opt:
   id              = "demo"
   id_seq_num      = "020"
   next_id         = "demo_mle_inst_lang_hdr"
   text            = "Пример 2: Добавить язык для уже установленного приложения"
   next_type       = "n"
 
#----
# Поскольку demo_mle_inst_lang_hdr - описательное имя, но его трудно
# запомнить, то для ссылки на это окно можно создать более простой 
# псевдоним.
#----
sm_menu_opt:
   id              = "demo_lang"
   next_id         = "demo_mle_inst_lang_hdr"
   next_type       = "n"
   alias           = "y"
 
sm_menu_opt:
   id_seq_num      = "030"
   id              = "demo"
   next_id         = "demo_lspv"
   text            = "Пример 3: Оглавление физического тома"
   text_msg_file   = "smit.cat"
   next_type       = "n"
 
sm_menu_opt:
   id_seq_num      = "040"
   id              = "demo"
   next_id         = "demo_date"
   text            = "Пример 4: Изменить/показать дату, время"
   text_msg_file   = "smit.cat"
   next_type       = "n"
 
#----------------------------------------------------------------
# Пример 1
# ------
# Цель: Добавить очередь печати. Если пакет printers.rte не установлен,
#       то он должен устанавливаться автоматически. Если пользователь работает
#       со MSMIT (SMIT с оконным интерфейсом), то для выполнения этой задачи
#       будет запускаться графическая программа. В противном случае
#       управление передается задаче очереди печати SMIT.
#
# Вопросы:     1. Обработанный вывод & cmd_to_classify
#              2. Переменная среды SMIT (msmit или ascii)
#              3. name_hdr для динамического окна
#              4. name_hdr для потомка динамического окна   
#              5. Создание опции "OK / Отмена"
#              6. dspmsg для преобразований
#              7. Режим exit/exec
#              8. id_seq_num для опции name_hdr
#----------------------------------------------------------------
#----
# Вопросы: 1,4
# Следует отметить, что значение next_id совпадает со значением id.
# Помните, что обработанный вывод cmd_to_classify добавляется в next_id,
# так как задан тип "c". Поэтому значением для next_id будет либо
# demo_queue1, либо demo_queue2. Вывод name_hdr не показывается,
# а значение cmd_to_list в demo_queue_dummy_opt не указано,
# т.е. окно с данным name_hdr будет динамическим.
#----
sm_name_hdr:
   id                        = "demo_queue"
   next_id                   = "demo_queue"
   option_id                 = "demo_queue_dummy_opt"
   name                      = "Добавить очередь печати"
   name_msg_file             = "smit.cat"
   name_msg_set              = 52
   name_msg_id               = 41
   type                      = "c"
   ghost                     = "y"
   cmd_to_classify         = "\
x()
{
    # Проверяется, установлен ли файл принтера.
    lslpp -l printers.rte 2>/dev/null 1>/dev/null
    if [[ $? != 0 ]]
    then
   echo 2
    else
   echo 1
    fi
}
x"
   next_type                  = "n"
 
#----
# Вопросы: 2,4 
# Определив, что программное обеспечение принтера установлено, мы
# хотим узнать, запускать ли для данной задачи программу GUI,
# или переходить в текстовое окно SMIT. Для этого мы проверяем
# значение переменной среды SMIT, которое равно "m" для оконного
# (Motif) или "a" для текстового (ascii) режима. Здесь вывод
# cmd_to_classify снова передается в next_id.
#---- 
sm_name_hdr:
   id                        = "demo_queue1"
   next_id                   = "mkpq"
   option_id                 = "demo_queue_dummy_opt"
   has_name_select           = ""
   ghost                     = "y"
   next_type                 = "n"
   type                      = "c"
   cmd_to_classify           = "\
gui_check()
{
   if [ $SMIT = \"m\" ]; then
     echo gui
   fi
}
   gui_check"
   
sm_name_hdr:
   id               = "mkpqgui"
   next_id          = "invoke_gui"
   next_type        = "d"
   option_id        = "demo_queue_dummy_opt"
   ghost            = "y"
 
#----
# Вопрос: 7
# Примечание: значение exec_mode для команды равно "e"; это означает,
# что перед запуском cmd_to_exec программа SMIT завершается.
#----
sm_cmd_hdr:
   id               = "invoke_gui"
   cmd_to_exec      = "/usr/bin/X11/xprintm"
   exec_mode        = "e"
   ghost            = "y"
 
sm_cmd_opt:
   id                             = "demo_queue_dummy_opt"
   id_seq_num                     = 0
 
#----
# Вопросы: 3,5
# Программное обеспечение принтера не установлено. Установите
# его и вернитесь к demo_queue1, чтобы проверить значение переменной
# среды SMIT. Это name_hdr для динамического окна. cmd_to_list для
# sm_cmd_opt будет немедленно появляться на экране в виде всплывающей опции,
# вместо того, чтобы ждать, пока пользователь введет данные.
# В этом динамическом окне cmd_opt задает окно "OK/Отмена",
# в котором пользователю требуется просто нажать клавишу Return.
#----
sm_name_hdr:
   id                        = "demo_queue2"
   next_id                   = "demo_queue1"
   option_id                 = "demo_queue_opt"
   name                      = "Добавить очередь печати"
   name_msg_file             = "smit.cat"
   name_msg_set              = 52
   name_msg_id               = 41
   ghost                     = "y"
   cmd_to_classify           = "\
install_printers ()
{
 
  # Установить пакет принтера.
  /usr/lib/assist/install_pkg \"printers.rte\" 2>&1 >/dev/null
  if [[ $? != 0 ]]
  then
    echo "Ошибка при установке printers.rte"
    exit 1
  else
    exit 0
  fi
}
install_printers "
   next_type                        = "n"
 
#----
# Вопросы: 5,6,8
# Здесь cmd_opt используется как окно "OK/Отмена". Следует также отметить,
# что для просмотра текста опции применяется команда dspmsg. Это
# позволяет преобразовывать сообщения.
# Примечание: значение id_seq_num для опции равно 0. Для каждого заголовка name_hdr
#       разрешена только одна опция, и ее номер id_seq_num должен быть равен 0.
#----
sm_cmd_opt:
   id                        = "demo_queue_opt"
   id_seq_num                = "0"
   disc_field_name           = ""
   name                      = "Добавить очередь печати"
   name_msg_file             = "smit.cat"
   name_msg_set              = 52
   name_msg_id               = 41
   op_type                   = "l"
   cmd_to_list               = "x()\
{
if [ $SMIT = \"a\" ] \n\
then \n\
dspmsg -s 52 smit.cat 56 \
'Для автоматической установки поддержки принтера нажмите Enter.\n\
Для отмены нажмите F3.\n\
'\n\
else \n\
dspmsg -s 52 smit.cat 57 'Для автоматической установки программного обеспечения
принтера щелкните на данном пункте.\n' \n\
fi\n\
} \n\
x"
   entry_type                = "t"
   multi_select              = "n"
 
#----------------------------------------------------------------
#
# Пример 2
# ------
# Цель: Добавление языка для уже установленного приложения. Часто
#       рекомендуется предоставить пользователю некоторую информацию, 
#       перед тем как открывать какое-либо окно диалога. Для этой цели
#       можно использовать имена заголовков (sm_name_hdr).
#       В данном примере для определения устанавливаемого языка и
#       установочного устройства используются два заголовка. 
#       В окне диалога предусмотрены поля ввода информации,
#       необходимой для выполнения задачи.
#
# Вопросы:
#       1. Сохранение выходных данных от последовательных name_hdrs
#          в cooked_field_name
#       2. Вызов функций getopts внутри cmd_to_exec для обработки
#          информации в cmd_opt
#       3. Определение кольцевого списка или списка cmd_to_list для просмотра
#          на экране значений cmd_opts
#----------------------------------------------------------------
 
#----
# Вопрос: 1
# Это первый name_hdr. Он вызывается из menu_opt для данной функции.
# Мы хотим сохранить данные, введенные пользователем, для последующего
# использования в окне диалога. Параметр, передаваемый в cmd_to_classify,
# вводится/выбирается пользователем. Cmd_to_classify очищает
# вывод и сохраняет его в переменной, определяемой в cooked_field_name. 
# При этом переопределяется значение, заданное по умолчанию для
# вывода cmd_to_classify, которое равно _cookedname. Переопределение
# необходимо из-за того, что нам нужно сохранить вывод
# из следующего name_hdr.
#----
sm_name_hdr:
    id                        = "demo_mle_inst_lang_hdr"
    next_id                   = "demo_mle_inst_lang"
    option_id                 = "demo_mle_inst_lang_select"
    name                      = "Добавить язык для уже установленного приложения"
    name_msg_file             = "smit.cat"
    name_msg_set              = 53
    name_msg_id               = 35
    type                      = "j"
    ghost                     = "n"
    cmd_to_classify           = "\
        foo() {
            echo $1 | sed -n \"s/[^[]*\\[\\([^]]*\\).*/\\1/p\"
        }
        foo"
    cooked_field_name         = "add_lang_language"
    next_type                 = "n"
    help_msg_id               = "2850325"
 
sm_cmd_opt:
    id                        = "demo_mle_inst_lang_select"
    id_seq_num = "0"
    disc_field_name           = "add_lang_language"
    name                      = "Устанавливаемый язык"
    name_msg_file             = "smit.cat"
    name_msg_set              = 53
    name_msg_id               = 20 
    op_type = "l"
    entry_type                = "n"
    entry_size                = 0
    required                  = ""
    prefix                    = "-l "
    cmd_to_list_mode          = "a"
    cmd_to_list               = "/usr/lib/nls/lsmle -l"
    help_msg_id               = "2850328"
 
#----
# Вопрос: 1 
# Это второй name_hdr. Здесь данные, введенные пользователем, передаются
# непосредственно через cmd_to_classify и сохраняются в переменной
# add_lang_input.
#----
sm_name_hdr:
    id                        = "demo_mle_inst_lang"
    next_id                   = "demo_dialog_add_lang"
    option_id                 = "demo_add_input_select"
    has_name_select           = "y"
    name                      = "Добавить язык для уже установленного приложения"
    name_msg_file             = "smit.cat"
    name_msg_set              = 53
    name_msg_id               = 35
    type                      = "j"
    ghost                     = "n"
    cmd_to_classify           = "\
        foo() {
            echo $1
        }
        foo"
    cooked_field_name         = "add_lang_input"
    next_type = "d"
    help_msg_id               = "2850328"
 
sm_cmd_opt:
    id                        = "demo_add_input_select"
    id_seq_num = "0"
    disc_field_name           = "add_lang_input"
    name                      = "Устройство/каталог для загрузки программного обеспечения"
    name_msg_file             = "smit.cat"
    name_msg_set              = 53
    name_msg_id               = 11 
    op_type = "l"
    entry_type = "t"
    entry_size                = 0
    required                  = "y"
    prefix                    = "-d "
    cmd_to_list_mode          = "1"
    cmd_to_list               = "/usr/lib/instl/sm_inst list_devices"
    help_msg_id               = "2850313"
 
#----
# Вопрос: 2
# Каждое значение cmd_opts преобразуется к специальному формату
# (тире, затем одиночный символ и необязательный параметр), позволяющий
# обрабатывать его командой getopts. Двоеточие после буквы в команде
# getopts означает, что после опции с тире ожидается параметр.
# Это наилучший способ обработки информации, содержащейся в cmd_opt,
# если задается несколько опций, в особенности если одна из них
# пропускается, что приводит к нарушению последовательности $1, $2,
# и т.д.
#----
sm_cmd_hdr:
    id              = "demo_dialog_add_lang"
    option_id       = "demo_mle_add_app_lang"
    has_name_select        = ""
    name                      = "Добавить язык для уже установленного приложения"
    name_msg_file             = "smit.cat"
    name_msg_set              = 53
    name_msg_id               = 35 
    cmd_to_exec     = "\
       foo()
       {
       while getopts d:l:S:X Option \"$@\"
       do
          case $Option in
             d) device=$OPTARG;;
             l) language=$OPTARG;;
             S) software=$OPTARG;;
             X) extend_fs="-X";;
          esac
       done
 
       if [[ `/usr/lib/assist/check_cd -d $device` = '1' ]]
       then
          /usr/lib/assist/mount_cd $device
          CD_MOUNTED=true
       fi
 
       if [[ $software = \"ALL\" ]]
       then
          echo "Устанавливается весь пакет программ для $language..."
       else
          echo "Устанавливается $software для $language..."
       fi
       exit $RC  
       }
       foo"
    ask                       = "y"
    ghost                     = "n"
    help_msg_id               = "2850325"
 
sm_cmd_opt:
    id                        = "demo_mle_add_app_lang"
    id_seq_num = "0"
    disc_field_name           = "add_lang_language"
    name                      = "Устанавливаемый язык"
    name_msg_file             = "smit.cat"
    name_msg_set              = 53
    name_msg_id               = 20 
    entry_type                = "n"
    entry_size                = 0
    required                  = "y"
    prefix                    = "-l "
    cmd_to_list_mode          = "a"
    help_msg_id               = "2850328"
 
#----
# Вопрос: 2
# Перед выбираемым пользователем значением стоит поле prefix;
# оба значения (и prefix, и выбранное значение) передаются в
# cmd_to_exec для обработки командой getopts.
#----
sm_cmd_opt:
    id                        = "demo_mle_add_app_lang"
    id_seq_num            = "020"
    disc_field_name           = "add_lang_input"
    name                  = "Устройство/каталог для загрузки программного обеспечения"
    name_msg_file             = "smit.cat"
    name_msg_set              = 53
    name_msg_id               = 11 
    entry_type                = "n"
    entry_size                = 0
    required                  = "y"
    prefix                    = "-d "
    cmd_to_list_mode          = "1"
    cmd_to_list               = "/usr/lib/instl/sm_inst list_devices"
    help_msg_id               = "2850313"
 
sm_cmd_opt:
    id                        = "demo_mle_add_app_lang"
    id_seq_num            = "030"
    name                  = "Установленное приложение"
    name_msg_file             = "smit.cat"
    name_msg_set              = 53
    name_msg_id           = 43
    op_type = "l"
    entry_type                = "n"
    entry_size                = 0
    required                  = "y"
    prefix                = "-S "
    cmd_to_list_mode      = ""
    cmd_to_list           = "\
       list_messages ()
       {
          language=$1
          device=$2
          lslpp -Lqc | cut -f2,3 -d':'
       }
       list_messages"
    cmd_to_list_postfix   = "add_lang_language add_lang_input"
    multi_select          = ","
    value_index           = 0
    disp_values           = "ALL"
    help_msg_id           = "2850329"
 
#----
# Вопрос: 3
# Здесь вместо cmd_to_list указывается набор значений кольцевого
# списка в поле disp_values (через запятую). При нажатии пользователем
# клавиши Tab в поле ввода cmd_opt будет появляться по одному элементу из этого
# списка. Однако вместо того, чтобы передавать в cmd_hdr значение "yes" (да)
# или "no" (нет), рекомендуется использовать поле aix_values для передачи значения
# -X, или не передавать никакое значение. Список в поле aix_values должен в точности
# совпадать со списком в поле disp_values.
#----
sm_cmd_opt:
   id_seq_num = "40"
   id = "demo_mle_add_app_lang"
   disc_field_name = ""
   name = "Увеличить объем файловых систем при необходимости?"
   name_msg_file = "smit.cat"
   name_msg_set = 53
   name_msg_id = 12
   op_type = "r"
   entry_type = "n"
   entry_size = 0
   required = "y"
   multi_select = "n"
   value_index = 0
   disp_values = "yes,no"
        values_msg_file = "sm_inst.cat"
   values_msg_set = 1
   values_msg_id = 51
   aix_values = "-X,"
   help_msg_id = "0503005"
 
#----------------------------------------------------------------
#
# Пример 3
# ------
# Цель: Показать характеристики логического тома. Имя логического
#   тома вводится пользователем и передается в
#   cmd_hdr как имя  _rawname.
#
# Вопросы:     1. _rawname
#               2. Кольцевой список & aix_values
#----------------------------------------------------------------
 
#----
# Вопрос: 1
# Имя rawname не требуется, так как мы используем только один заголовок name_hdr
# и можем применять _rawname в качестве имени переменной по умолчанию.
#----
sm_name_hdr:
   id = "demo_lspv"
   next_id = "demo_lspvd"
   option_id = "demo_cmdlvmpvns"
   has_name_select = ""
   name = "Оглавление физического тома"
   name_msg_file = "smit.cat"
   name_msg_set = 15
   name_msg_id = 100
   type = "j"
   ghost = ""
   cmd_to_classify = ""
   raw_field_name = ""
   cooked_field_name = ""
   next_type = "d"
   help_msg_id = "0516100"
 
sm_cmd_opt:
   id_seq_num = "0"
   id = "demo_cmdlvmpvns"
   disc_field_name = "PVName"
   name = "Имя физического тома"
   name_msg_file = "smit.cat"
   name_msg_set = 15
   name_msg_id = 101
   op_type = "l"
   entry_type = "t"
   entry_size = 0
   required = "+"
   cmd_to_list_mode = "1"
   cmd_to_list = "lsvg -o|lsvg -i -p|grep -v '[:P]'| \
      cut -f1 -d' '"
   cmd_to_list_postfix = ""
   multi_select = "n"
   help_msg_id = "0516021"
 
#----
# Вопрос: 1
# Значение cmd_to_discover_postfix передает имя физического тома,
# которое представляет собой исходные данные, выбираемые пользователем в
# name_hdr - _rawname.
#----
sm_cmd_hdr:
   id = "demo_lspvd"
   option_id = "demo_cmdlvmlspv"
   has_name_select = "y"
   name = "Оглавление физического тома"
   name_msg_file = "smit.cat"
   name_msg_set = 15
   name_msg_id = 100
   cmd_to_exec = "lspv"
   ask = "n"
   cmd_to_discover_postfix = "_rawname"
   help_msg_id = "0516100"
 
sm_cmd_opt:
   id_seq_num = "01"
   id = "demo_cmdlvmlspv"
   disc_field_name = "_rawname"
   name = "Имя физического тома"
   name_msg_file = "smit.cat"
   name_msg_set = 15
   name_msg_id = 101
   op_type = "l"
   entry_type = "t"
   entry_size = 0
   required = "+"
   cmd_to_list_mode = "1"
   cmd_to_list = "lsvg -o|lsvg -i -p|grep -v '[:P]'| \
      cut -f1 -d' '"
   help_msg_id = "0516021"
 
#----
# Вопрос: 2
# Здесь кольцевой список из трех значений совпадает со списком aix_values,
# который мы хотим передать в cmd_to_exec для sm_cmd_hdr.
#----
sm_cmd_opt:
   id_seq_num = "02"
   id = "demo_cmdlvmlspv"
   disc_field_name = "Option"
   name = "Опция просмотра:"
   name_msg_file = "smit.cat"
   name_msg_set = 15
   name_msg_id = 92
   op_type = "r"
   entry_type = "n"
   entry_size = 0
   required = "n"
   value_index = 0
   disp_values = "status,logical volumes,physical \
           partitions"
   values_msg_file = "smit.cat"
   values_msg_set = 15
   values_msg_id = 103
   aix_values = "  ,-l,-p"
   help_msg_id = "0516102"
 
#----------------------------------------------------------------
#
# Пример 4
# ------
# Цель: Изменить/показать дату & время
#
# Вопросы:      1. Использование заголовка динамического окна для получения
#                  значений переменных для следующего окна диалога.
#               2. Использование cmd_to_discover для задания нескольких
#                  начальных значений cmd_opt.
#               3. Переупорядочение параметров в cmd_to_exec.
#----------------------------------------------------------------
 
#----
# Вопрос: 1
# Данный заголовок динамического окна name_hdr получает два значения, которые
# хранятся в переменных daylight_y_n и time_zone и используются в cmd_opts
# следующего окна диалога. Выходные значения cmd_to_classify разделяются двоеточием,
# как и в списке имен полей, определяемом в cooked_field_name.
#----
sm_name_hdr:
   id = "demo_date"
   next_id = "demo_date_dial"
   option_id = "date_sel_opt"
   name_msg_set = 0
   name_msg_id = 0
   ghost = "y"
   cmd_to_classify = " \
if [ $(echo $TZ | awk '{ \
  if (length($1) <=6 ) {printf(\"2\")} \
  else {printf(\"1\")} }') = 1 ] \n\
then\n\
    echo $(dspmsg smit.cat -s 30 18 'yes')\":$TZ\"\n\
else\n\
    echo $(dspmsg smit.cat -s 30 19 'no')\":$TZ\"\n\
fi #"
   cooked_field_name = "daylight_y_n:time_zone"
 
sm_cmd_opt:
   id_seq_num = "0"
   id = "date_sel_opt"
 
#----
# Вопросы: 2,3
# Здесь cmd_to_discover получает шесть значений, по одному для каждой
# доступной для изменения опции sm_cmd_opts для данного окна.
# Вывод cmd_to_discover состоит из двух строк; первая начинается с символа #,
# за которым следует список имен переменных, а вторая содержит список их значений.
# В обоих списках в качестве разделителя используется двоеточие. Следует отметить,
# что cmd_to_exec получает параметры из cmd_opts и переупорядочивает их
# при вызове команды.
#----
sm_cmd_hdr:
   id = "demo_date_dial"
   option_id = "demo_chtz_opts"
   has_name_select = "y"
   name = "Изменить / Показать дату и время"
   name_msg_file = "smit.cat"
   name_msg_set = 30
   name_msg_id = 21
   cmd_to_exec = "date_proc () \
# ММ дд чч мм сс гг\n\
# порядок параметров диалога   #  3  4  5  6  7  2\n\
{\n\
date \"$3$4$5$6.$7$2\"\n\
}\n\
date_proc "
   exec_mode = "P"
   cmd_to_discover = "disc_proc() \n\
{\n\
TZ=\"$1\"\n\
echo '#cur_month:cur_day:cur_hour:cur_min:cur_sec:cur_year'\n\
date +%m:%d:%H:%M:%S:%y\n\
}\n\
disc_proc"
   cmd_to_discover_postfix = ""
   help_msg_id = "055101"
 
#----
# Первые два cmd_opts получают начальные значения 
# (disc_field_name) из name_hdr.
#----
sm_cmd_opt:
   id_seq_num = "04"
   id = "demo_chtz_opts"
   disc_field_name = "time_zone"
   name = "Часовой пояс"
   name_msg_file = "smit.cat"
   name_msg_set = 30
   name_msg_id = 16
   required = "y"
 
sm_cmd_opt:
   id_seq_num = "08"
   id = "demo_chtz_opts"
   disc_field_name = "daylight_y_n"
   name = "Предусмотрен ли в данном часовом поясе переход на летнее время?\n"
   name_msg_file = "smit.cat"
   name_msg_set = 30
   name_msg_id = 17
   entry_size = 0
 
#----
# Последние шесть six cmd_opts получают свои значения из
# cmd_to_discover.
#----
sm_cmd_opt:
   id_seq_num = "10"
   id = "demo_chtz_opts"
   disc_field_name = "cur_year"
   name = "Год (00-99)"
   name_msg_file = "smit.cat"
   name_msg_set = 30
   name_msg_id = 10
   entry_type = "#"
   entry_size = 2
   required = "+"
   help_msg_id = "055102"
 
sm_cmd_opt:
   id_seq_num = "20"
   id = "demo_chtz_opts"
   disc_field_name = "cur_month"
   name = "Месяц (01-12)"
   name_msg_file = "smit.cat"
   name_msg_set = 30
   name_msg_id = 11
   entry_type = "#"
   entry_size = 2
   required = "+"
   help_msg_id = "055132"
 
sm_cmd_opt:
   id_seq_num = "30"
   id = "demo_chtz_opts"
   disc_field_name = "cur_day"
   name = "День (01-31)\n"
   name_msg_file = "smit.cat"
   name_msg_set = 30
   name_msg_id = 12
   entry_type = "#"
   entry_size = 2
   required = "+"
   help_msg_id = "055133"
 
sm_cmd_opt:
   id_seq_num = "40"
   id = "demo_chtz_opts"
   disc_field_name = "cur_hour"
   name = "Час (00-23)"
   name_msg_file = "smit.cat"
   name_msg_set = 30
   name_msg_id = 13
   entry_type = "#"
   entry_size = 2
   required = "+"
   help_msg_id = "055134"
 
sm_cmd_opt:
   id_seq_num = "50"
   id = "demo_chtz_opts"
   disc_field_name = "cur_min"
   name = "Минута (00-59)"
   name_msg_file = "smit.cat"
   name_msg_set = 30
   name_msg_id = 14
   entry_type = "#"
   entry_size = 2
   required = "+"
   help_msg_id = "055135"
 
sm_cmd_opt:
   id_seq_num = "60"
   id = "demo_chtz_opts"
   disc_field_name = "cur_sec"
   name = "Секунда (00-59)"
   name_msg_file = "smit.cat"
   name_msg_set = 30
   name_msg_id = 15
   entry_type = "#"
   entry_size = 2
   required = "+"
   help_msg_id = "055136"

Связанная информация

Раздел Инструмент управления системой (SMIT) - Обзор книги Руководство по управлению системой AIX 5L версии 5.1: Операционная система и устройства

Глава 25, Инструмент управления системой (SMIT)

Классы объектов SMIT

Команды dspmsg, gencat, ksh, man, odmadd, odmcreate , odmget, smit

Класс объектов sm_name_hdr (заголовок списков вариантов SMIT) , Класс объектов sm_cmd_hdr (заголовок окна диалога SMIT) , Класс объектов sm_cmd_opt (опции команд окна диалога/списка вариантов SMIT) , Класс объектов sm_menu_opt (меню SMIT).


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]