Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
23.02.2016
Размер:
191.49 Кб
Скачать

Міністерство освіти і науки, молоді та спорту України

Черкаський Державний Технологічний Університет

Кафедра комп’ютерних технологій

ЗВІТ

З курсу «Операційні системи»

Лабораторна робота №2

Перевірила: Виконав:

Федотова-Півень І.М. студент гр. КТ-101

Туровський Д.В.

Черкаси 2012

Лабораторна робота №2

Тема: Створення командних файлів в Linux у вигляді Perl-скріптів.

Мета: оволодіти навичками написання Perl-скріптів в Linux.

План: Виконати наступні дії :

  1. Скласти блок-схему алгоритму роботи Perl-скріпта.

  2. Скласти програму на мові Perl згідно з варіантом завдання.

  3. Вивести результати на екран.

Теоретичні відомості:

ОС Linux має вбудовану мову програмування Perl (Practical Extraction and Report Language). Perl безкоштовна, структурована, різностороння і гнучка мова програмування, на якій написано більшість скріптів для Web. Perl інтерпретована, тобто Perl-програми не треба компілювати. Perl має широкий спектр інструментів для роботи з файлами.

На Perl знак # (дієз) означає коментар (ігнорується текст після дієзу до кінця рядка).

Перший рядок (#!с:/usr/bin/perl або #!c:/usr/local/bin/perl) будь-якого Perl-скріпта дає команду Linux запуску скріпта інтерпретатором Perl, інстальованим за адресою c:/usr/bin/perl чи c:/usr/local/bin/perl. Цей перший рядок є коментар, але без нього скріпт може не cпрацювати.

Всюди далі скорочення ‘оп’ означає ‘оператор’. Нижче наведено синтаксис керуючих Perl-структур:

Керуюча структура if/else: Керуюча структура for:

if (умова_1) { for (вираз_1; умова_1; вираз_2) { оп_1;  оп_2;   … # ці оператори виконуються, оп_1; оп_2; ...

# якщо умова_1 вірна } } else { # вираз_1 виконується 1 раз на початку цикла

оп_3; оп_4;   …  # ці оператори виконуються, # блок операторів виконується, поки умова_1

# якщо умова_1 хибна # вірна } # вираз_2 виконується в кінці кожного циклу

Керуюча структура while: Керуюча структура until:

while (вираз_1) { until (вираз_1) { оп_1; оп_2; ... оп_1; оп_2; ... } } # блок операторів виконується, # блок операторів виконується, # поки вираз_1 вірний. # поки вираз_1 хибний.

Керуюча структура do/while: Керуюча структура do/until:

do {оп_1; оп_2; ... do {оп_1;оп_2; ... } while вираз_1; } until вираз_1; # блок операторів виконується 1 раз. # блок операторів виконується 1 раз. # далі блок виконується, поки вираз_1 вірний. # далі блок виконується поки вираз_1 хибний.

Керуюча структура foreach:

foreach $x (@list) {оп_1; оп_2; ...}

# скалярній змінній $x по черзі присвоюються значення зі списку @list. # З кожним наступним значенням $x виконується блок операторів.

Синтаксис регулярних виразів для обробки тексту.

Регулярний вираз - це зразок, що складається з символів. Він використовується для анализу скріптом вхідних даних з урахуванням пробілів, ком, символів табуляції та інших розділювачів. В регулярних вираза Perl для скороченого запису використовує символи:

Символ

    1. Опис

.

Відповідає будь-якому символу (крім символа нового рядка)

(..)

Групує послідовність елементів

+

Задовольняє попередньому зразку один або більшу кількість раз

-

Задовольняє зразку нуль або один раз

*

Відповідає зразку один або нуль раз

[...]

Відповідає символу з заданої множини

[^...]

Відповідає символу з множини, отриманої запереченням

(...|...|...)

Відповідає одній з альтернатив

^

Відповідає початку рядка

$

Відповідає зразку в кінці рядка

{n,m}

Відповідає зразку від n до m раз

{n}

Відповідає зразку точно n раз

{n,}

Відповідає зразку мінімум n раз

\n\t etc.

Відповідає знаку нової лінії, символу табуляції і т. д.

\b

Відповідає на межі слова

\B

Відповідає всередині меж слова

\d

Відповідає цифрі

\D

Відповідає не цифрі

\s

Відповідає пробілу

\S

Відповідає не пробілу

\w

Відповідає букві або цифрі

\W

Відповідає символу, що не є ні буквою, ні цифрою

Виконання:

1)

2)

3)

4)

#!/usr/bin/perl

print "Content-type: text/html\n\n";

unless(-e("delete1.txt") or -e("undelete1.txt")){

open("file",">delete1.txt") or print "file not created \n";

close "file";

rename("delete1.txt","undelete1.txt") and print "file renamed\n";

unlink("undelete1.txt") and print "file deleted \n\n";

}else{

print "file blocked!"}

Висновок: при виконанні лабораторної роботи я оволодів навичками написання Perl-скріптів в Linux, створюв командні файли в Linux у вигляді Perl-скріптів. засвоїв команди створення, редагування файлів та папок, навігації.

Соседние файлы в папке ОС (Отчёты) Туровский