Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_курсач.doc
Скачиваний:
32
Добавлен:
22.02.2015
Размер:
2.49 Mб
Скачать

Лабораторная работа № 8.

Тема: написание сценариев.

Цель: ознакомиться с работой условных операторов и специальными параметрами.

Ход работы:

  1. Проанализировать файл /home/labs/back.sh

  2. Вподкаталогеbin создать файл case.sh:

  1. Выполнить команду export UID

dg@dg-VirtualBox:~$ export UID

  1. Запустить сценарий без аргументов и последовательно с аргументамиstatus, start, status, start, stop, status, stop. Результат сохранить в файле отчета.

  2. В подкаталоге bin создать файл calc.sh

6. Запустить сценарий следующими командами:

  1. calc.sh 1 + 2 \* 3 + 3 / 4

  2. calc.sh 1 + 2 \* 3

  3. calc.sh 1 + 2\*3

  4. calc.sh 1+2

  1. Объяснить почему различается результат в случаях b) и c).

Разные формулы. В случае b) сумма (1 + 2) умножается на 3, а в случае c) к 1 прибавляется произведение 2 и 3.

  1. Исправить сценарий так, чтобы в случае d) он выдавал результат 3.

  1. Написать сценарий summ.sh выводящий сумму своих аргументов если первый аргумент +, произведение если первый аргумент и сообщение Usage: summ.sh +|* arguments ... в противном случае.

Лабораторная работа № 9.

Тема: базовые регулярные выражения. Редактор sed.

Цель: ознакомиться с регулярными выражениями и редактором sed.

Ход работы:

  1. Скопировать в домашний каталог файл /home/labs/text.txt

dg@dg-VirtualBox:~$ cp /home/labs/text.txt/home

  1. Вывести в файл отчета все строки файлаtext.txt содержащие слово "Благозвон". До­бавить к файлу отчета количество найденных строк.

  2. Добавить к файлу отчета все строки файлаtext.txt, которые начинаются с буквы "Б" (возможно после нескольких пробелов).

  1. Добавить к файлу отчета все непустые строки файлаtext.txt, не содержащие русскую букву "а" (в любом регистре).

  2. Добавить в файл отчета имена файлов каталога /home/labs, которые содержат слово "include".

dg@dg-VirtualBox:~$ find/home/labs –name include* -type f>>lab9.txt

  1. Используя редакторsed заменить в файле text.txt все слова Снарк на СНАРК. Результат сохранить в файле snark.txt.

dg@dg-VirtualBox:~$ sed –e ‘s/Снарк/СНАРК/g’ text.txt>snark.txt

  1. При помощиsed вывести из файла /etc/passwd идентификаторы пользователей и их имена, разделенные символом табуляции, в формате:

  1. dg

  2. daemon

  3. operator ...

Вывод должен быть отсортирован по идентификатору пользователя. Результат добавьте к файлу отчета.

dg@dg-VirtualBox:~$ cat/etc/passwd |

sed s/:x:/” “/|

sed s/:[0-9]*.*//|

sed s/.*& &/ |

sed s/”[a-z]*”//|

sed s/”[0-9]*$”// |

sort –g>>lab9.txt

9. Написать сценарий для sed, который будет менять местами каждые две строки файла. Возможно sed прийдется запускать с ключом -n.

  1. Если Вам не удалось выполнить предыдущее задание, обратите внимание на файл /home/labs/rev.sed.

  2. Написать сценарий для редактора sed, который будет добавлять:

  1. В начало файла строку "<html><body>".

  2. В начало всех строк начинающихся словом "Приступ" строку "<H2>", а в конец строку "</H2>".

  3. В конец всех остальных строк "<br>".

  4. К концу последней строки "</body></html>"

Результат работы сценария сохранить в файле snark.html в каталоге public_html домашнего каталога (каталог потребуется создать). Сценарий сохранить под именем sed1 в домашнем каталоге.

Создаем файл l1.sed:

Li\<html><body>

/^The/i\<H2>

/^The/a\<H2>

$a \</body></html>

$!a \<br>

Запускаем сценарий через терминал:

dg@dg-VirtualBox:~$ sed –f l1.sed text.txt>>public_html/text.htm