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 , встреченная в ко-

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


 

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

6896. Определение постоянной в законе Стефана-Больцмана 107 KB
  Цель работы: изучение законов теплового излучения. Приборы и принадлежности: лампа накаливания, выпрямитель, реостат, амперметр, вольтметр, приёмник светового излучения, микроамперметр. Тела способны излучать электромагнитные волны...
6897. Исследование спектров поглощения ипропускания световых волн 106 KB
  Исследование спектров поглощения ипропускания световых волн Цель работы: освоение методов получения спектров пропускания, ознакомление с параметрами фильтров и с принципом работы монохроматора. Приборы и принадлежности: монохроматор МУМ-01, блок пит...
6898. Изучение и компьютерное моделирование работы LC-автогенератора с трансформаторной обратной связью 320 KB
  Автогенераторы Цель работы Изучение и компьютерное моделирование работы LC-автогенератора с трансформаторной обратной связью. В работе необходимо исследовать условия самовозбуждения автогенератора, а также научиться определять амплитуду нап...
6899. Поняття державного механізму та значення його для держави 81.72 KB
  Вступ На будь-якому етапі розвитку людства питання про те, якою повинна бути держава, її функції, а також як і ким повинна здійснюватися державна влада залишалося в тій або іншій мірі актуальним і суттєвим. Держава, як вища форма організації суспіль...
6900. Разработка форм и интерфейса базы данных используя средства Microsoft Access 336 KB
  Разработка форм Цель работы: Используя средства Microsoft Access, приобрести навыки разработки интерфейса базы данных Основы создания формы. Создадим форму с помощью автоформы - Клиенты. Для этого будем использовать таблиц...
6901. Лінійна алгебра. Конспект лекцій та тестові завдання 855 KB
  Вища математика належить до циклу фундаментальнихдисциплін і забезпечує вивчення загальнонаукових, загально інженерних та спеціальних дисциплін.У технічному університеті курс вищої математики є одним із основних, визначальних, як для всь...
6902. Правознавство. Основи державного (конституційного) права України 1.37 MB
  Лекція 1. Основи державного (конституційного) права України ПЛАН Загальна характеристика держави. Державний суверенітет. Поняття і риси правової держави. Форми держави. Загальна характеристика права. Поняття норм права. Джере...
6903. Економіка та організація виробництва. Опорні конспекти 618 KB
  Підприємство, як субєкт господарювання. Визначення, мета і напрямки діяльності підприємства. Вплив зовнішнього оточення на діяльність підприємств. Класифікація підприємств. Порядок створення і ліквідація підприємств. В...
6904. Суеверие голубя 59.5 KB
  Суевериеголубя Сказать, что подкрепление это стимул на ответные реакции, значит сказать ничего более чем то, что он следует за ответной реакцией. Он может следовать из-за некоторых механических связей или из-за посредничества другого механизма...