- •Отчёт по лабораторным работам
- •Лабораторная работа №3. Простейшие команды для работы с текстом.
- •Лабораторная работа №4. Команды для управления процессами.
- •Лабораторная работа №5. Настройка оболочки
- •Лабораторная работа № 6. Работа с файловыми системами.
- •Лабораторная работа № 7. Написание сценариев.
- •Лабораторная работа №8. Настройка оболочки
- •Лабораторная работа № 10. Использование пакета OpenSsh.
Лабораторная работа № 7. Написание сценариев.
Цель: ознакомление с понятием “сценарии”. Научиться изменять права доступа к файлу. Использование параметров и составных команд. Научиться использовать циклы.
1. Создайте в домашнем каталоге подкаталог bin.
sergey@sergey-VirtualBox:~$ mkdir bin
Выведите на экран значение переменной PATH и убедитесь, что она содержит созданный Вами каталог bin.
sergey@sergey-VirtualBox:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
При помощи редактора vim создайте файл bin/s1.sh:
for file ; do
echo " ---- $file --- "
head -n 10 $file done
4. Измените права доступа к файлу. Для этого выполните команду chmod +x bin/s1.sh sergey@sergey-VirtualBox:~$ chmod +x bin/s1.sh - команда добавляет разрешение на выполнение файла.
5. Выполните сценарий следующим образом: sh s1.sh /home/labs/text.txt /home/labs/dao.txt
sergey@sergey-VirtualBox:~$ sh bin/s1.sh labs/text.txt labs/dao.txt
Сохраните результат в файле отчёта.
sergey@sergey-VirtualBox:~$ sh bin/s1.sh labs/text.txt labs/dao.txt >>lab7.txt
labs/text.txt
1
2
3
4
5
6
7
8
9
10
labs/dao.txt
a
b
c
d
e
f
g
h
i
g
Напишите сценарий, получающий в качестве первого аргумента имя каталога и выводящий список тех файлов из этого каталога, имена которых содержат последовательность символов определенную вторым аргументом. Сценарий поместите в подкаталоге bin домашнего каталога и назовите s2.sh.
sergey@sergey-VirtualBox:~$ chmod +x bin/s2.sh
for file in $1/*$2*; do
echo " $file";
done
sergey@sergey-VirtualBox:~$ bin/s2.sh labs lab
labs/lab2.txt
labs/lab6.txt
labs/lab7.txt
8. Напишите сценарий, который выводит пронумерованный список файлов с расширением txt в текущем каталоге, ожидает от пользователя ввода номера файла, выводит первые десять строк заданного файла и повторяет цикл. Сценарий сохраните под именем list.sh в каталоге bin.
sergey@sergey-VirtualBox:~$ chmod +x bin/list.sh select name in labs/*.txt;
do head 10 $name;
done
sergey@sergey-VirtualBox:~$ bin/list.sh
1) labs/dao.txt 3) labs/lab6.txt 5) labs/text1.txt
2) labs/lab2.txt 4) labs/lab7.txt 6) labs/text.txt
#? 1
head: cannot open `10' for reading: No such file or directory
==> labs/dao.txt <==
a
b
c
d
e
f
g
h
i
g
#?
9. Встроенная команда интерпретатора read имя считывает строку со стандартного ввода и записывает её в переменную имя. Команда возвращает код завершения ноль если строка была успешно считана и код отличный от нуля если произошла ошибка или встретился конец файла. Напишите сценарий, который считывает строки со стандартного ввода и выводит их на стандартный вывод. (Используйте цикл while). Сценарий сохраните под именем s3.sh.
while read VAR;
do echo $VAR;
done
sergey@sergey-VirtualBox:~$ chmod +x bin/s3.sh
sergey@sergey-VirtualBox:~$ bin/s3.sh
I'm human
I'm human
^Z
[1]+ Stopped bin/s3.sh
