Экспресс-опрос
- Какая первая строка в скрипте и для чего она предназначена?
- Что будет, если команда написана с ошибкой? Будет ли выполняться скрипт далее или остановится на неправильной команде?
Задание 1
Написать скрипт script_ВАШЕИМЯ.sh, который:
- Выводит приветствие
- Показывает текущий каталог
- Выводит список всех процессов
- Показывает текущую дату и время
- Проверяет наличие файлов, содержащих ключевое слово "error" в каталоге
/var/log/ - Выводит содержимое файла
/etc/os-release - Подсчитывает количество строк в файле с информацией о системе
- Выводит последние 5 строк файла
/etc/os-release - Выводит информацию о пользователях из
/etc/passwdс использованием awk в виде: "Имя пользователя: ..., Домашний каталог: ..." - Выводит сообщение о завершении работы скрипта
Дополнительно: дать права на исполнение скрипту и скопировать его в /tmp/.
Задание 2
Разобрать скрипт создания директорий и копирования файлов в них:
#!/bin/bash
#
DATE=`date '+%d-%m-%y'`
#echo $DATE
for i in {1..5}
do
date +'%H-%M-%S' > File-$i.txt
sleep 5
done
mkdir -p $DATE
cp File*.txt $DATE
#cd $DATE
for FILE in $DATE/*
do
cat $FILE
done
Объяснить: что делает каждая строка? Почему в файлах разное время?
Дополнительно: переписать скрипт с использованием while вместо for.
Задание 3
Создать скрипт, который напишет для каждого файла в текущей директории, является ли он директорией или файлом.
Подсказка: использовать for FILE in * и конструкцию if [ -d "$FILE" ].
Задание 4
Написать скрипт, который будет генерировать файлы со случайными именами и расширениями, а их количество — параметром, который скрипт принимает от пользователя.
Требования:
- Если аргумент не передан — вывести сообщение об ошибке и завершить с кодом
exit 1 - Использовать переменную
$1для получения количества файлов - Имена файлов включают дату (
date '+%Y-%m-%d') и$RANDOM - Содержимое файлов — случайный текст из
/dev/urandom