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


#!/bin/bash

# Принимаем параметры (группа и бригада) для совместимости с меню, но не используем
group=$1
brigada=$2

data_file="file_test"

# Определяем следующий номер записи
if [ -f "$data_file" ]; then
    last_num=$(wc -l < "$data_file")
    next_num=$((last_num + 1))
else
    next_num=1
fi

echo "Добавление новых записей (для завершения оставьте поле ФИО пустым)"

while true; do
    echo ""
    echo "Запись №$next_num"
    read -p "Введите ФИО (не более 10 символов): " surname
    if [ -z "$surname" ]; then
        break
    fi

    # Обрезаем ФИО до 10 символов, чтобы сохранить фиксированную ширину
    surname=$(echo "$surname" | cut -c1-10)

    read -p "Введите год рождения (цифры): " year
    # Проверка, что год состоит из цифр
    if ! [[ "$year" =~ ^[0-9]+$ ]]; then
        echo "Год должен быть числом. Запись пропущена."
        continue
    fi

    read -p "Введите город (не более 10 символов): " city
    city=$(echo "$city" | cut -c1-10)

    read -p "Введите средний балл (число, можно дробное): " bal
    # Проверка формата числа (целое или с плавающей точкой)
    if ! [[ "$bal" =~ ^[0-9]+(\.[0-9]+)?$ ]]; then
        echo "Балл должен быть числом (например, 4.5). Запись пропущена."
        continue
    fi

    # Форматируем строку с фиксированной шириной полей
    # %-5s – номер (влево 5), %-10s – фио (влево 10), %-10s – год, %-10s – город, %-10s – бал
    formatted_line=$(printf "%-5s%-10s%-10s%-10s%-10s\n" "$next_num" "$surname" "$year" "$city" "$bal")
    echo "$formatted_line" >> "$data_file"

    echo "Запись добавлена."
    next_num=$((next_num + 1))
done

echo "Добавление завершено."