Загрузка данных


#!/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