#!/bin/sh
# Использование: ./zadanie.sh ЧИСЛО1 ЧИСЛО2 ВОЗРАСТ
# Например: ./zadanie.sh 10 20 18
BASE="/mnt/d"
PERSONAL="$BASE/Личный_каталог"
SUBDIR="$PERSONAL/Подкаталог"
# Проверка параметров для сложения
case "${1-}:${2-}" in
*[!0-9:]*|:*)
echo "Укажите два целых неотрицательных числа: $0 ЧИСЛО1 ЧИСЛО2 ВОЗРАСТ" >&2
exit 1
;;
esac
if [ "$#" -lt 3 ]; then
echo "Использование: $0 ЧИСЛО1 ЧИСЛО2 ВОЗРАСТ" >&2
exit 1
fi
# 1–2. Перейти в каталог диска и создать личный каталог
if ! mkdir -p "$PERSONAL"; then
echo "Не удалось создать $PERSONAL. Проверьте, подключен ли диск." >&2
exit 1
fi
cd "$PERSONAL" || exit 1
# 3. Заголовок терминала
printf '\033]0;%s\007' "Работа с Консолью"
# 4. Открыть этот командный файл в текстовом редакторе
xdg-open "$0" >/dev/null 2>&1 &
# 5. Изменить формат приглашения для текущего процесса
PS1='Работа с Консолью:\w\$ '
# 6. Создать подкаталог
mkdir -p "$SUBDIR" || exit 1
# 7. Создать три текстовых файла со справкой и оглавлением каталога
{
echo "Справка по XCOPY (аналог в Linux — cp):"
man cp 2>/dev/null | col -b 2>/dev/null || echo "Справка доступна командой: man cp"
} > "$SUBDIR/xcopy.txt"
{
echo "Справка по ATTRIB (изменение атрибутов/прав; аналог в Linux — chmod):"
man chmod 2>/dev/null | col -b 2>/dev/null || echo "Справка доступна командой: man chmod"
} > "$SUBDIR/attrib.txt"
ls -la "$PERSONAL" > "$SUBDIR/oglavlenie.txt"
# 8. Скопировать все три файла с помощью цикла for
for file in "$SUBDIR"/*.txt; do
cp -- "$file" "$PERSONAL/" || exit 1
done
# 9. Объединить три скопированных файла в REZ.txt
cat "$PERSONAL/xcopy.txt" \
"$PERSONAL/attrib.txt" \
"$PERSONAL/oglavlenie.txt" > "$PERSONAL/REZ.txt" || exit 1
# 10–11. Добавить текст и значение TEMP
printf '\nПРИВЕТ!!\n' >> "$PERSONAL/REZ.txt"
printf 'TEMP=%s\n' "${TEMP:-не задана}" >> "$PERSONAL/REZ.txt"
# 12. Добавить сумму первых двух параметров
sum=$(( $1 + $2 ))
printf 'Сумма параметров %s и %s: %s\n' "$1" "$2" "$sum" >> "$PERSONAL/REZ.txt"
# 13–14. Задать MYVAR значением возраста и добавить MYVAR + 5
MYVAR=$3
export MYVAR
printf 'MYVAR=%s\nMYVAR + 5 = %s\n' "$MYVAR" "$((MYVAR + 5))" >> "$PERSONAL/REZ.txt"
# 15. Открыть результат в текстовом редакторе
xdg-open "$PERSONAL/REZ.txt" >/dev/null 2>&1 &
# 16. Аналог test.bat: вывести сведения о распределении памяти
free -h