Контрольная работа по написанию Bash-скрипта
Автор: helennur • Июнь 12, 2022 • Контрольная работа • 716 Слов (3 Страниц) • 156 Просмотры
В первой строке прописываем, что файл имеет разрешение bash и является исполняемым файлом.
#!/bin/bash
Далее считываем 3 введенных пользователем значения с клавиатуры и выводим на их на экран (Пункт 1 задания).
#функция приема первого аргумента
read -p "Enter the name of the directory to be processed: " fprocdir
#функция приема первого аргумента
read -p "Enter the name of the directory to save the processing results: " fstprocdir
#функция приема первого аргумента
read -p "Enter archive name: " archname
#вывод на экран значений трех введенных аргументов
echo "1. The you entered data $fprocdir, $fstprocdir, $archname"
При передаче параметра –s скрываем все значения, которые выводятся на консоль (Пункт 7 задания).
#скрыть данные консоли
if [$2 = "-s"] || [$2 = "silence"]; then echo /dev/null
При передаче параметра –h происходит вывод краткой информации о скрипте (Пункт 6 задания).
#вывод справки
if [$1 = "-s"] || [$1 = "silence"]; then echo "This program works with files
and takes parametres the name of the directory to be processed,
the name of the directory to save the processing results,
archive name"
Создаем директорию для обработки и директорию для сохранения результатов обработки.
#создание директории для обработки
mkdir $fprocdir
#создание директории для хранения результатов обработки
mkdir $fstprocdir
Переходим в директорию для обработки и создаем в ней несколько пустых текстовых файлов и несколько директорий.
#переход в директорию для обработки
cd $fprocdir
#создание содержимого в папке для обработки
touch file1.txt
touch file1.txt
touch file2.txt
touch file3.txt
mkdir dir1.txt
mkdir dir2.txt
Создаем функцию для подсчета директорий и файлов при помощи функции for и проверок –d , является ли директорией, -f является ли файлом (Пункт 2 задания).
#подсчет директорий и файлов
loop() {
for i in *
do
if [ -d "$i" ]
then
dir=$((dir+1))
cd "$i"
loop
else
file=$((file+1))
fi
done
cd ..
}
loop
При помощи функции du –m узнаем размер директории для обработки и выводим сообщение о количестве директорий и файлов, а также размере директории (Пункт 2 задания).
...