Прикладные свободные программы и системы в школе - [35]
Операции над числами допускают в качестве операндов только константы и переменные, однако можно использовать и раскрываемые арифметические выражения. И символическое обозначение операций, и операнды выражений, передаваемых команде «test», в терминах командной строки являются операндами команды (хотя форма операций и похожа на ключи).
Условное исполнение
Оболочка реализует команду условного исполнения, доступную в трех модификациях: «if — then — fi», «if — then — else — fi» и «if — then — elif ... — fi». Простейшей является форма «if — then — fi» (Рис. 1-77).
Выполняется оператор условного исполнения так: выполняется список_команд1, затем, если код завершения истинен (равен нулю), выполняется список_команд2. Команды в каждом списке могут соединяться переводом строки или точкой с запятой «;» (Рис. 1-78).
Обратите внимание, что если оператор условного исполнения (или любая другая сложная конструкция) вводится в интерактивном режиме, и строка завершилась раньше, чем оператор, оболочка выведет строку приглашения продолжения (значение переменной $PS2; по умолчанию «>»), будет ожидать продолжения ввода и повторять это, пока оператор не будет завершен (в данном случае — сложным символом «fi»).
Если в первом списке более одной команды, кодом завершения списка будет код завершения последней в списке команды. Однако существуют два других символа завершения команды: «&&» и «||». Кодом завершения списка, соединенного «&&», является результат выполнения операции «И» над значениями истинности кодов завершения входящих в список команд, а кодом завершения «||»-списка — результат выполнения операции «ИЛИ».
Использование в первом списке команды «if» более одной команды является экзотическим приемом, которого по возможности следует избегать.
Вторая форма (Рис. 1-79) более сложна: выполняется список_команд1, затем, если код завершения истинен, выполняется список_команд2, а если ложен — список_команд3 (Рис. 1-80).
И наконец, третья форма (Рис. 1-81) позволяет задавать множественные условия: если код завершения первого списка истинен, выполняется второй список команд, иначе выполняется третий список команд и, если его код завершения истинен, выполняется четвертый список команд. Конструкция «elif — then» может быть множественной, но в любом случае выполнен будет лишь один «then»-список.
В «if — then — elif ... fi» форме оператора «if» также может присутствовать конструкция «else»; следующий за ней список команд будет выполнен, если коды завершения «if»-списка и всех «elif»-списков оказались ложными.
Циклическое исполнение с предусловием
Оболочка поддерживает два оператора цикла с предусловием: «while — do — od» (Рис. 1-82) и «until — do — od» (Рис. 1-83).
Выполнение любого из них заключается в том, что выполняется список_команд1 и, в зависимости от кода завершения либо выполняется список_команд2 и выполнение цикла повторяется, либо выполнение цикла завершается. «While»-цикл выполняется, пока код завершения первого списка истинен, а «until»-цикл — пока он ложен.
Обратите внимание, что «until»-цикл, в отличие от использования этого ключевого слова в большинстве языков программирования, является также циклом с предусловием, а не с постусловием. Если же действительно необходимо организовать циклическое исполнение с постусловием, реальное тело цикла можно включить в список_команд_1, завершив его командой проверки условия, а номинальное тело (заключенное между ключевыми словами «do» и «done») сделать пустым.
Циклическое исполнение со списком значений
Оболочка предоставляет также возможность организации циклического исполнения с переменной, пробегающей список значений (Рис. 1-84).
Список_команд будет исполнен по одному разу для каждого значения в списке значений (Рис. 1-85).
Если ключевое слово «in» и список значений не указаны, переменная будет пробегать список значений специальных переменных $1 — $9, соответствующих аргументам командной строки (см. ниже) (в порядке их следования), из которой запущен сценарий (программа).
Многовариантное условное исполнение
Для многовариантного условного исполнения в зависимости от значения строковой переменной оболочка поддерживает оператор «case» с на редкость причудливым синтаксисом (Рис. 1-86).
Указанная строка (обычно — результат раскрытия значения переменной) поочередно сравнивается с шаблонами и при первом совпадении выполняется соответствующий список команд (до конструкции «;;»), после чего выполнение оператора «case» завершается.
Строки, указанные в качестве шаблонов, подвергаются обычному раскрытию, за исключением того, что специальные символы «*», «*», «[ ... ]» не приводят к поиску файлов, а используются (по тем же правилам, что и при раскрытии шаблонов имен файлов) как метасимволы при сравнении.
Чаще всего многовариантное условное исполнение применяется при разборе списка параметров, с которыми сценарий был вызван для исполнения. Примеры настолько громоздки, что мы их опускаем.
Ввод-вывод
Вывод значений переменных и выражений сценарием как правило осуществляется известной нам командой «echo» или командой «printf» (предназначенной для форматированного вывода), которую мы в этом курсе не рассматриваем.
Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.Для преподавателей информатики и методистов, а также для студентов и аспирантов соответствующих специальностей.© 2002-3, Максим Отставнов.© 2002, Андрей Добровольский (раздел 3.1).Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL)
n1`Глава 2 из отчета Фонда Новая экономика Министерству экономического развития и торговли по теме «Анализ результатов и разработка предложений по созданию механизмов поддержки (в том числе за счет средств федерального бюджета) проектов по использованию ИКТ в экономике, социальной сфере, государственном управлении на региональном и муниципальном уровнях власти». Работа выполнена в рамках ФЦП «Электронная Россия». Дается очерк перспектив модели коммерческого программного обеспечения, известной как свободное программное обеспечение (СПО), в части удовлетворения потребности государственных органов и организаций в компьютерных программах, в сравнении с альтернативной (несвободной) моделью.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.