30133

Основы программирования в оболочке ОС UNIX

Лабораторная работа

Информатика, кибернетика и программирование

Пользователь имеет возможность присвоить переменной значение некоторой строки символов. Например команда mrk= usr ndy bin присваивает значение строки символов usr ndy bin переменной mrk типа строка символов . Для этого в соот ветствующем месте командной строки должно быть употреблено имя этой переменной которому предшествует метасимвол . Использование значения присвоенного некоторой переменной называется подстановкой.

Русский

2013-08-23

25.44 KB

6 чел.


РОССИЙСКИЙ УНИВЕРСИТЕТ ДРУЖБЫ НAРОДОВ

Фaкультет физикo-мaтемaтических и естественных нaук

Кaфедрa систем телекoммуникaций

ОТЧЕТ

пo лaбoрaтoрнoй рaбoте № 5

дисциплинa: Оперaциoнные системы

 Студент:  Бoрмусoвa Aринa                                     Группa:   НИ-102

МОСКВA

2013 г.

Цель рaбoты:

 Изучить основы программирования в оболочке ОС UNIX.

Листинг:

Вывод:

 Были изучены основы программирования в оболочке ОС UNIX.

Контрольные вопросы:

 

2. Что такое POSIX?

 POSIX (Portable Operating System Interface for Computer Environments)

- интерфейс переносимой операционной системы для компьютерных сред. Представляет собой набор стандартов, подготовленных институтом инженеров по электронике и радиотехники (IEEE), который определяет различные аспекты построения операционной системы. POSIX включает такие темы, как программный интерфейс, безопас- ность, работа с сетями и графический интерфейс. POSIX-совместимые оболочки являются будущим поколением оболочек UNIX и других ОС. Windows NT рекламируется как система, удовлетворяющая POSIX-стандартам. POSIX-совместимые оболочки разработаны на базе оболочки Корна; фонд бесплатного программного обеспечения (Free Software Foundation) работает над тем, чтобы и оболочку BASH сделать POSIX-совместимой.

3. Как определяются переменные и массивы в языке программирова-

ния bash?

 Командный процессор bash обеспечивает возможность использования переменных типа строка символов . Имена переменных могут быть выбраны пользователем. Пользователь имеет возможность присвоить переменной значение некоторой строки символов. Например, команда

 mark=/usr/andy/bin

присваивает значение строки символов /usr/andy/bin  переменной mark типа строка символов . Значение, присвоенное некоторой пере- менной, может быть впоследствии использовано. Для этого в соот- ветствующем месте командной строки должно быть употреблено имя этой переменной, которому предшествует метасимвол $ . Например, команда

 mv afile $mark

переместит файл afile из текущего каталога в каталог с абсолютным полным именем /usr/andy/bin. Использование значения, присвоенного некоторой переменной, называется подстановкой. Для того, чтобы имя переменной не сливалось с символами, которые могут следовать за ним в командной строке, при подстановке в общем случае используется следующая форма записи:

 ${имя переменной}

  например, использование команд

 b=/tmp/andyls

 -l myfile > ${b}ls

приведет к переназначению стандартного вывода команды ls  с тер минала на файл /tmp/andy-ls , а использование команды ls -l>$bls  приведет к подстановке в командную строку значения переменной bls . Если переменной bls  не было предварительно присвоено никакого значения, то ее значением является символ пробел. Оболочка bash позволяет создание массивов. Для создания массива используется команда set с флагом -A. За флагом следует имя переменной, а затем список значений, разделенных пробелом. Например,

 set -A states Delaware Michigan "New Jersey"

Далее можно сделать добавление в массив, например, states[49]=Alaska .

Индексация массивов начинается с нулевого элемента.

6. Что означает операция (( )) ?

 Подобно С оболочка bash может присваивать переменной любое значение, а произвольное выражение само имеет значение, которое может использоваться. При этом В«нольВ» воспринимается как В«ложьВ», а любое другое значение выражения — В«истинаВ». Для облегчения программирования можно записывать условия оболочки bash, в двойные скобки — (( )) .

 

7. Какие стандартные имена переменных Вы знаете?

 Переменные PS1 и PS2 предназначены для отображения промптера командного процессора. PS1 — это промптер командного процессора, по умолчанию его значение равно символу $  или # . Если какая-то интерактивная программа, запущенная командным процессором, требует ввода, то используется промптер PS2. Он по умолчанию имеет значение символа > .

 Другие стандартные переменные:

–  HOME — имя домашнего каталога пользователя. Если команда cd

вводится без аргументов, то происходит переход в каталог, указан-

ный в этой переменной .

–  IFS — последовательность символов, являющихся разделителями

в командной строке. Это символы пробел, табуляция и перевод

строки(new line).

–  MAIL — командный процессор каждый раз перед выводом на экран

промптера проверяет содержимое файла, имя которого указано в

этой переменной, и если содержимое этого файла изменилось с

момента последнего ввода из него, то перед тем как вывести на

терминал промптер, командный процессор выводит на терминал

сообщение You have mail (у Вас есть почта).

–  TERM — тип используемого терминала.

–  LOGNAME — содержит регистрационное имя пользователя, которое

устанавливается автоматически при входе в систему.

8. Что такое метасимволы?

 Такие символы, как ’ < > * ? | \ " &  являются метасимволами и имеют для командного процессора специальный смысл.

9. Как экранировать метасимволы?

 Снятие специального смысла с метасимвола называется экранированием метасимвола. Экранирование может быть осуществлено с помощью предшествующего метасимволу символа \ , который, в свою очередь, является метасимволом. Для экранирования группы метасимволов, ее нужно заключить в одинарные кавычки. Строка, заключенная в двойные кавычки, экранирует все метасимволы, кроме $, ’ , \, " . Например,

– echo \*  выведет на экран символ * ,

– echo ab’*\|*’cd выдаст строку ab*\|*cd.

13. Каково назначение команд set , typset  и unset ?

 Используется команда set с флагом -A. За флагом следует имя переменной, а затем список значений, разделенных пробелом. Например,

set -A states Delaware Michigan "New Jersey"  Далее можно сделать добавление в массив, например, states[49]=Alaska . тИндексация массивов начинается с нулевого элемента. В командном процессоре Си имеется еще несколько стандартных переменных. Значение всех переменных можно просмотреть с помощью команды set.

 Наиболее распространенным является сокращение, избавляющееся от слова let в программах оболочек. Если объявить переменные целыми значениями, любое присвоение автоматически трактуется как арифметическое. Используйте typeset -i для объявления и присвоения переменной, и при последующем использовании она становится целой. Или можете использовать ключевое слово integer (псевдоним для typeset -l) и объявлять переменные целыми. Таким образом, выражения типа х=y+z воспринимаются как арифметические. Группу команд можно объединить в функцию. Для этого существует ключевое слово function , после которого следует имя функции и список команд, заключенных в фигурные скобки. Удалить функцию можно с помощью команды unset  c флагом -f . Команда typeset имеет четыре опции для работы с функциями:

– -f  — перечисляет определенные на текущий момент функции;

– -ft  — при последующем вызове функции инициирует ее трассиров-

ку;

– -fx  — экспортирует все перечисленные функции в любые дочерние

программы оболочек;

– -fu  — обозначает указанные функции как автоматически загружае-

мые. Автоматически загружаемые функции хранятся в командных

файлах, а при их вызове оболочка просматривает переменную FPATH ,

отыскивая файл с одноименными именами функций, загружает его

и вызывает эти функции.

 В переменные mon и day будут считаны соответствующие значения,

введенные с клавиатуры, а переменная trash нужна для того, чтобы отобрать всю избыточно введенную информацию и игнорировать ее. Изъять переменную из программы можно с помощью команды unset.

16. Каково предназначение команды getopts ?

 Весьма необходимой при программировании является команда getopts, которая осуществляет синтаксический анализ командной строки, выделяя флаги, и используется для объявления переменных. Синтаксис команды следующий:

 getopts option-string variable [arg ... ]

Флаги – это опции командной строки, обычно помеченные знаком минус; Например, -F является флагом для команды ls -F. Иногда эти флаги имеют аргументы, связанные с ними. Программы интерпретируют эти флаги, соответствующим образом изменяя свое поведение. Строка опций option-string — это список возможных букв и чисел соответствующего флага. Если ожидается, что некоторый флаг будет сопровождаться некоторым аргументом, то за этой буквой должно следовать двоеточие. Соответствующей переменной присваивается буква данной опции. Если команда getopts может распознать аргумент, она возвращает истину. Принято включать getopts в цикл while и анализировать введенные данные с помощью оператора case. Предположим, необходимо распознать командную строку следующего формата:

 testprog -ifile_in.txt -ofile_out.doc -L -t -r

 Вот как выглядит использование оператора getopts в этом случае:

 while getopts o:i:Ltr optletter

 do case $optletter in

 o) oflag=1; oval=$OPTARG;;

 i) iflag=1; ival=$OPTARG;;

 L) Lflag=1;;

 t) tflag=1;;

 r) rflag=1;;

 *) echo Illegal option $optletter

 esac

 done

 Функция getopts включает две специальные переменные среды –

OPTARG и OPTIND. Если ожидается дополнительное значение, то OPTARG устанавливается в значение этого аргумента (будет равна file_in.txt  для опции i  и file_out.doc  для опции o) . OPTIND является числовым индексом на упомянутый аргумент. Функция getopts также понимает переменные типа массив, следовательно, можно использовать ее в функции не только для синтаксического анализа аргументов функций, но и для анализа введенных пользователем данных.

17. Какое отношение метасимволы имеют к генерации имён файлов?

При перечислении имен файлов текущего каталога можно использовать следующие символы:

– *  — соответствует произвольной, в том числе и пустой строке;

– ?  — соответствует любому одному символу;

– [c1-c1]  — соответствует любому символу, лексикографически на ходящемуся между символами c1 и с2.

Например,

– echo *  — выведет имена всех файлов текущего каталога, что представляет собой простейший аналог команды ls;

– ls *.c  — выведет все файлы с последними двумя символами, равными .c.

– echo prog.?  — выдаст все файлы, состоящие из пяти или шести символов, первыми пятью символами которых являются prog. .

– [a-z]*  — соответствует произвольному имени файла в текущем

каталоге, начинающемуся с любой строчной буквы латинского алфавита.\

18. Какие операторы управления действиями вы знаете?

 Часто бывает необходимо обеспечить проведение каких-либо действий циклически и управление дальнейшими действиями в зависимости от результатов проверки некоторого условия. Для решения подобных задач язык программирования bash предоставляет Вам возможность использовать такие управляющие конструкции, как for, case, if и while. С точки зрения командного процессора эти управляющие конструкции являются обычными командами и могут использоваться как при создании командных файлов, так и при работе в интерактивном режиме. Команды, реализующие подобные конструкции, по сути дела являются операторами языка программирования bash. Поэтому при описании языка программирования bash термин оператор  будет использоваться наравне с термином команда .

19. Какие операторы используются для прерывания цикла?

 Два несложных способа позволяют вам прерывать циклы в оболочке bash. Команда break завершает выполнение цикла, а команда continue завершает данную итерацию блока операторов. Команда break полезна для завершения цикла while в ситуациях, когда условие перестает быть правильным. Пример бесконечного цикла while, с прерыванием в момент, когда файл перестает существовать:

 while true

 do

 if [! -f $file]

 then

 break

 fi

 sleep 10

 done

 

20. Для чего нужны команды false  и true ?

 Команды ОС UNIX возвращают код завершения, значение которого может быть использовано для принятия решения о дальнейших действиях. Команда test, например, создана специально для использования в командных файлах. Единственная функция этой команды заключается в выработке кода завершения.

 21. Что означает строка if test -f man$s/$i.$s , встреченная в ко-

мандном файле?


 

А также другие работы, которые могут Вас заинтересовать

1502. Что такое вера. Критерии истинности веры 116.61 KB
  Критерии истинности. Необходимость веры для спасения. Критерий хорошести. Ищущим Истинного Бога Бог готовит воздаяние. Вера должна быть связана с доступностью Бога. Вера должна исходить только от Бога. Искажение истины. Нет таких людей, которые не могут узнать Бога. Духовная причина неверия в Истинного Бога. Что нужно делать, чтобы спастись? Какого главного дела требует от нас Бог? Свойства веры и знания.
1503. Скрытие и фальсификация научной информации угроза современной цивилизации 114.5 KB
  Засекречивание - неизбежное зло для науки, однако оно носит временный характер и компенсируется вложением в науку дополнительных средств. При создании СТО Эйнштейн руководствовался работами голландского физика Г.Лоренца и французского математика А.Пуанкаре. Если бы современные физики познакомились с классическими теориями эфира, их такой вывод не удивил.
1504. Визначити класичним методом реакцію кола 97.58 KB
  Визначити класичним методом реакцію кола на підключення джерела живлення. Побудувати графік функції, провести аналіз, визначити тривалість перехідного процесу.
1505. Проектирование оптимальной организационной структуры в условиях глобальной конкуренции 97 KB
  Глобальные факторы конкуренции. Организационный дизайн для оптимизации преимуществ компании во внутренней конкуренции на внутреннем национальном рынке. Преимущества и недостатки СУРГ. Преимущества и недостатки ДСС. Организационный дизайн для оптимизации участия компании в международной конкуренции.
1506. Анализ ЗАО Городское освещение 102 KB
  Технология производства с общей схемой технологического процесса. Характеристика окружающей среды проектируемого объекта. Организация эксплуатация электрооборудования объекта. Планирование ТО и Р оборудования. Виды диагностирования электрооборудования.
1507. Особенности микропроцессорной техники 115.57 KB
  Основные направления в развитии микропроцессорной техники. Системы счисления. Цифровые электронные устройства. Технологии изготовления цифровых интегральных микросхем. Регистры микропроцессора. Аккумулятор, РОН, счетчик команд. Микропроцессорные средства и системы. Понятие дополнительного кода числа.
1508. Специальные налоговые режимы 103.5 KB
  Упрощенная система налогообложения (гл. 26.2 НК РФ). Система налогообложения в виде единого налога на вмененный доход для отдельных видов деятельности. Единый сельскохозяйственный налог для сельскохозяйственных товаропроизводителей. Соглашение о разделе продукции.
1509. Валютный рынок России 107.5 KB
  Формирование российского валютного рынка. Валютное регулирование. Регулирование валютного курса рубля и динамика его изменения. Перспективы развития российского рынка и стабилизации курса рубля.
1510. Понятия миссии и миссионерства/ О православной миссии 107.48 KB
  Понятия миссии и миссионерства. Традиционные и нетрадиционные религии. Причины возникновения миссионерства. Методология миссионерства. Основной принцип миссионера. Оружие миссионера.