Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#4| Adjudicator & Tower Knight
Demon's Souls |#3| Cave & Armor Spider
Demon's Souls |#2| First Boss
SCP-077: Rot skull

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Сэйдж Рас Весь текст 822.4 Kb

Приемы профессиональной работы в Unix

Предыдущая страница Следующая страница
1 ... 37 38 39 40 41 42 43  44 45 46 47 48 49 50 ... 71
89                          echo "\n\ncmd ( to exit): \c"
90                          read CMD
91                          while [ "$CMD" != "" ]
92                          do
93                                  eval $CMD
94                                  echo "cmd ( to exit
): \c"
95                                  read CMD
96                          done
97                   fi;;
98          s|S)    echo "\nenter command: \c"
99                  read CMD
100                 eval $CMD
101                 echo "\nhit \c"
102                 read CMD;;
103         *)      echo "\nInvalid command"
104                 echo "\nhit \c"
105                 read CMD;;
106         esac
107 done

     ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ

CMD       Содержит различные команды на разных уровнях меню
HOME      Еще одна экспортируемая переменная, взятая из
          среды выполнения
LOGNAME   Shell-переменная, предварительно экспортированная
NAME      Содержит имя файла с новостями

       ОПИСАНИЕ

     ЗАЧЕМ НАМ НУЖЕН office?

     Многие инструментальные средства в системе UNIX  могут  выполнять
полезные функции, относящиеся к делопроизводству. В силу способа орга-
низации UNIX, это отдельные и самостоятельные средства. Для того чтобы
узнать  о  них,  необходимо  найти все эти средства в справочных руко-
водствах,  изучить каждое из них и все время помнить, как с ними рабо-
тать. Это очень неудобно.
     Кроме, того,  нам необходимо добавить ряд мощных команд к  нашему
UNIX,  включая  несколько отдельных управляемых с помощью меню утилит.
Каким образом мы можем все это об'единить?
     Нам необходим  механизм,  с  помощью  которого  мы можем получить
доступ ко всем функциям,  имеющим отношение к  делопроизводству.  Если
использовать  меню,  мы  сможем вызывать каждую функцию нажатием одной
клавиши.

     ЧТО ДЕЛАЕТ office?

     Office представляет собой попытку собрать наиболее часто  исполь-
зуемые  функции  делопроизводства в один пакет,  управляемый с помощью
меню.  Тем самым office упрощает вызов этих функций,  поскольку вам не
обязательно знать, где эти утилиты размещаются и как к ним обращаться.
Если у вас есть помощник-секретарь без всякого опыта работы в  системе
UNIX, вы можете поручить ему выполнение многих из этих функций. Вы мо-
жете добавить новые функции и уровни меню, если это необходимо.
     В office имеются как неотъемлемые общие функции делопроизводства,
так и специфические добавки.  Данная утилита  пытается  управлять  как
основными  функциями,  так  и кругом задач по вашему вкусу.  К базовым
функциям относятся почта,  новости,  календарь и база телефонных номе-
ров.  Добавляемые  особенности  включают  в  себя систему напоминаний,
            В строке 71 мы получаем для проверки команду главного меню  и  ин-
интерпретатора  shell,  не выходя из программы office.  Благодаря всем
этим качествам,  все находится в одном месте и обеспечивается простота
доступа и сопровождения.
     Главное меню содержит все доступные функции. Оно выглядит так:

---------------------------------------------------------------------------

|
|    Fri, Jun 20                       16:18:23
|
|           Office Menu
|           -----------
|             Mail                 (Почта)
|             News                 (Новости)
|             Calendar             (Календарь)
|             Phone                (Телефоны)
|             Automatic Reminders  (Автоматические напоминания)
|             Shell Command        (Переход в shell)
|              to exit         (Выход)
|
|     press m,n,c,p,a,s or  :
|

     День и  дата  в  левом  верхнем углу получены командой UNIX date.
Каждый раз при выводе меню  печатается  новое  значение  времени.  Оно
сообщает вам о том,  когда вы начали работать с этим меню, и как долго
вы работали.
     Первым вариантом  выбора является почта.  Здесь ваш почтовый файл
проверяется на ненулевой размер.  Если размер нулевой (или такой  файл
отсутствует), выводится сообщение "no mail today" (сегодня почты нет).
Если для вас есть почта, то информация из файла почтового ящика распе-
чатывается в длинном формате командой ls и выводится запрос о том, хо-
тите ли вы прочитать вашу почту.  Если вы сказали "yes" (да), выполня-
ется обычная команда UNIX mail.
     Вторым вариантом выбора являются новости. Файлы новостей хранятся
в одном каталоге,  где каждая порция новостей представляет собой неза-
висимый файл.  Все порции новостей хранятся в специальном  каталоге  с
именем  /usr/news.  Office выводит список всех файлов новостей и затем
спрашивает, хотите ли вы просмотреть один из них. Если да, введите имя
файла - и он распечатается командой more.  Мы предполагаем,  что у вас
есть сетевая связь между пользователями или какое-то  другое  средство
для получения новостей.
     Третий вариант выбора - календарь. Поскольку с календарем связана
разнообразная  информация,  данная  опция  подразделяется на различные
функции.  Сначала выводится полностью календарь на текущий месяц с вы-
деленной  сегодняшней  датой.  Это  делается  с помощью утилиты today,
рассмотренной ранее.  Затем выполняется обращение к системной  утилите
работы с календарем. Если в вашем регистрационном каталоге есть файл с
именем calendar,  то утилита calendar (выполняемая командой  cron  для
просмотра  каждого регистрационного каталога) просматривает записи ва-
шего календаря.  Если какие-либо записи относятся к  сегодняшнему  или
завтрашнему дню, эта утилита посылает их вам по почте.
     Командный файл office использует несколько иной  подход.  Сначала
ваш  файл  календаря  проверяется на существование и ненулевой размер.
Если файл существует,  то он выводится на экран в длинном формате, так
что вы можете увидеть сам файл и информацию, относящуюся к нему. После
этого выполняется функция calendar.  При таком вызове  на  стандартное
устройство вывода печатаются все записи, подходящие по времени. Утили-
та calendar,  вызываемая командой cron,  обеспечивает связь только при
помощи почты. Если календарного файла нет, то выводится сообщение, ин-
формирующее об этом.
     Следующим вариантом выбора являются телефоны.  Для управления ба-
зой данных телефонных номеров используется утилита phone,  рассмотрен-
ная  в  предыдущем разделе.  Поскольку при вызове phone не выполняется
никакой предварительной или последующей обработки  данных,  вы  можете
перечитать этот раздел, чтобы вспомнить, как работает эта утилита.
     Пятый вариант выбора  -  автоматические  напоминания.  Эта  опция
предназначена  для того,  чтобы помогать вам в слежении за важными мо-
ментами времени в течение дня. Первым делом она приветствует вас в ду-
хе  утилиты  greet.  Затем  запускаются в фоновом режиме два командных
файла at. Они срабатывают в 11:45 для объявления о ленче и в 16:45 для
объявления о конце рабочего дня. Если вы хотите запустить некоторые из
ваших собственных командных файлов в фоновом  режиме  выполнения,  от-
ветьте "yes" (да) на следующий вопрос.  Для напоминания выводится син-
таксис утитлиты at, печатается текущее время, и ожидается ваш ввод ко-
манд для at. Красиво и просто в применении! (Если в вашей системе име-
ется встроенная возможность at,  а вы реализовали нашу версию  at  под
другим  именем  или в другом каталоге,  проследите за соответствующими
изменениями в тексте командного файла.)
     Благодаря способу выполнения введенной вами команды at, вы можете
ввести любую команду, но не саму at. Цикл сделан так, что он принимает
столько команд, сколько вам нужно. Для выхода из цикла введите возврат
каретки.
     Последняя опция  предназначена  для выполнения любой желаемой ко-
манды вне программы office,  оставаясь тем не менее в office.  Вы даже
можете  бы запустить еще один shell вне программы office (введя с кла-
виатуры sh), а затем по control-D вернуться в office. Нет почти ничего
невозможного.
     Для выхода из office достаточно просто  нажать  возврат  каретки.
Тем  самым произойдет выход из бесконечного цикла и возврат к предыду-
щему shell.

     ПРИМЕРЫ

     $ office
     s
     sh
     $

     Запуск office и выбор работы с shell.  Затем запуск shell-команды
с именем sh,  т.е.  самого shell. При этом вы запускаете новый shell и
получаете его символ приглашения.  По окончании работы  с  этим  shell
введите  ^d  для  выхода  из  него  и возврата к главному меню утилиты
office.

     ПОЯСНЕНИЯ

     Строки 4-8 выполняют проверку на ошибки. Если вы вызвали office с
какими-либо опциями, то вы создали ситуацию ошибки.
     Строки 10-107 - это один большой цикл while. Его структура подоб-
на ранее рассмотренным утилитам, управляемым с помощью меню. Строка 12
очищает экран командой c (см. главу 7). Если вы не хотите читать с за-
беганием вперед и включать в текст эту команду,  вы можете  пока  про-
пустить эту строку или,  если у вас система BSD,  использовать команду
clear.  В строке 13 позиционным параметрам присваивается результат ко-
манды date.
     Строки 14-27 выводят само меню, а строка 29 читает вводимую поль-
зователем команду. Строки 31-106 представляют собой оператор case, ко-
торый  распознает  введенную  команду  и   выполняет   соответствующие
действия.
     Строка 32 выполняет выход из программы office,  если  был  введен
только возврат каретки.  Строки 33-45 управляют командой mail. Вначале
с помощью команды test проверяется,  имеет ли файл с почтовыми сообще-
ниями размер больше нуля.  Если да, выводится пустая строка и почтовый
файл печатается в длинном формате команды ls.  Затем вам задается воп-
рос о том,  хотите ли вы просмотреть почту. Еслы вы вводите "y", вызы-
вается команда mail.  При любом другом  вводе  выполняется  возврат  в
главное меню.
     Строки 46-63 обрабатывают команду  новостей.  Сначала  переменная
PWD  устанавливается на наш текущий рабочий каталог.  Это делается для
того, чтобы при переходе командой cd в какое-то другое место, мы смог-
ли по окончании обработки вернуться туда,  где мы начали работать. За-
тем по команде cd мы переходим в каталог /usr/news. Это каталог, в ко-
тором  хранятся  файлы  новостей.  В системе Berkeley доступен каталог
/usr/msgs.  Этот каталог очень похож на /usr/news  и  может  использо-
ваться  вместо него,  если у вас есть такое желание.  Выводится в виде
столбцов список файлов из каталога /usr/news (строка 49),  и вам зада-
ется  вопрос о том,  хотите ли вы посмотреть какие-нибудь из этих фай-
лов.  Если вы вводите возврат каретки,  команда test воспринимает  это
как нулевой ввод и выполняется выход из оператора while.
     Цикл while выполняется до тех пор,  пока значение переменной NAME
не равно нулю (строка 52). Введенное имя проверяется на существование.
Если такой файл существует, то он распечатывается командой cat, обрам-
ленной  строками  из черточек.  Если файл не существует,  то выводится
сообщение о том,  что такого файла  новостей  нет.  Затем  вас  просят
ввести имя другого файла.  Этот процесс продолжается в цикле,  пока вы
не введете только возврат каретки. Когда вы выходите из цикла в строке
62, выполняется команда cd для возврата в тот каталог, откуда вы нача-
ли работать.  Эта команда cd не оказывает никакого влияния  после  за-
пуска утилиты office.  Вы должны указать команду cd вашему регистраци-
онному  shell.  Никакая другая программа,  запущенная из порожденного
shell, не может выполнить для вас команду cd.
     Строки 64-77 выполняют функции календаря.  Сначала выводятся  две
пустые  строки.  Почему две?  Потому что обычно команда echo вставляет
символ новой строки в конце каждой выводимой  строки,  а  выводимой  в
данный  момент строкой является еще один символ новой строки.  Затем в
строке 65 запускается программа today. Она печатает изображение кален-
даря на месяц.  Строка 66 проверяет, имеется ли календарный файл в ва-
шем регистрационном каталоге.  Если да, он выводится в длинном формате
Предыдущая страница Следующая страница
1 ... 37 38 39 40 41 42 43  44 45 46 47 48 49 50 ... 71
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (52)

Реклама