Главная страница
Навигация по странице:

  • Етап 1.3. Відображення характеристик ОС

  • ДРУГА ЧАСТИНА Етап 2.1. Автоматичне створення файла-скрипта заповнення таблиці БД

  • СисПрог Курсова (2). Міністерство освіти, науки, молоді І спорту україни одеський національний політехнічний університет


    Скачать 1.09 Mb.
    НазваниеМіністерство освіти, науки, молоді І спорту україни одеський національний політехнічний університет
    Дата01.07.2019
    Размер1.09 Mb.
    Формат файлаdocx
    Имя файлаСисПрог Курсова (2).docx
    ТипДокументы
    #83408
    страница2 из 3
    1   2   3


    Завдання:

    1. Використати бібліотеку Linux dialog для створення псевдографічного діалогового інтерфейсу користувача.

    2. Забезпечити отримання шляху розташування текстового файлу, необхідного для виконання завдання попереднього етапу.

    3. Забезпечити визначення значення параметру командного рядку скрипту з рішення попереднього етапу.

    4. Забезпечити перегляд каталогу зі створеними файлами.

    Виконання:

    Створюємо скрипт (2.sh) для керування керування процесом створення каталогів:

    #!/bin/bash

    #Функція для створення каталогів

    create_dirs(){

    #Уводимо ім'я файлу за допомогою файлового діалогу

    inp_filename=$(dialog --stdout --title "Уведіть ім'я вхідного файлу:"/

    --fselect ./ 0 0)
    #Перевіряємо чи введено ім'я файлу

    if [[ ! $? -eq 0 ]]; then

    dialog --msgbox "Ім'я файлу не введено." 0 0

    return

    fi

    #Викликаємо попередньо створений скрипт та передаємо йому ім'я

    #вхідного файлу

    ./1.sh "$inp_filename"

    }
    #Функція для перегляду створених каталогів

    view_dirs(){

    #Дозволити зчитуваня пробілів

    IFS=$'\n'

    #Побудова списку каталогів, які буде відображено в меню

    menu_dirs_list=""

    for dirname in $(ls -d dirs/*); do

    menu_dirs_list+="•\"$dirname\"\n"

    done
    #Відображення меню списку файлів

    dialog --title "Створені каталоги" --msgbox "$menu_dirs_list" 15 65

    }
    #Головна функція скрипта

    main(){

    #Нескінченний цикл

    while true; do

    #Виводимо головне меню на екран

    action=$(dialog --stdout --menu "Оберіть дію:" 0 0 3 \

    1 "Створення каталогів" \

    2 "Переглянути створені каталоги" \

    3 "Вихід")
    #Перевіряємо результат роботи команди

    if [[ ! $? -eq 0 ]]; then

    dialog --msgbox "Вибір не зроблено!" 0 0

    continue

    fi
    #Виконуємо обрану команду

    case $action in

    1)

    #Переходимо до створення каталогів

    create_dirs;;

    2)

    #Переходимо до перегляду створених каталогів

    view_dirs;;

    3)

    #Розриваємо головний цикл та виходимо зі скрипта

    break;;

    esac

    done; clear

    }
    #Виклик головної функції

    main

    Запускаємо наш скрипт:

    d_gergel@dell:

    /sp_cwork$ ./2.sh

    Головне меню скрипта:



    Створення каталогів: обираємо вхідний файл



    Створення каталогів: процес



    Перегляд створених каталогів:



    Етап 1.3. Відображення характеристик ОС

    Завдання:

    1) Використати бібліотеку Linux dialog створення псевдографічного діалогового інтерфейс користувача;

    2) Для кожного розділу перегляду характеристик ОС створити свій пункт меню;

    3) Варіанти характеристик ОС представлені в таблиці 1.3.1.

    Таблиця 1.3.1



    Виконання:

    #!/bin/bash

    #Повертає рядок з інформацією про пам'ять

    mem_info(){

    local info=$(grep "^MemFree" '/proc/meminfo')

    if [[ ! $? -eq 0 ]]; then

    dialog --msgbox "'MemFree' не знайдено в '/proc/meminfo'!" 0 0

    return -1

    fi

    echo $info

    }
    #Повертає рядок з інформацією про процесор

    proc_info(){

    #Зчитуємо всі знайдені збіги

    readarray cpu_specs < <(grep "^cpu family" /proc/cpuinfo)

    #Якщо кількість збігів рівна нулю

    if [[ ${#cpu_specs[@]} -eq 0 ]]; then

    dialog --msgbox "'cpu family' не було знайдено у файлі '/proc/cpuinfo'!"

    return -1

    fi

    #Формуємо список усіх знайдених збігів

    local info

    for (( i = 0; i < ${#cpu_specs[@]}; i++ )); do

    info+="$cpu${i}: ${cpu_specs[i]};\n"

    done

    #Виводимо цей список

    echo $info

    }
    #Повертає рядок з інформацією про файл довантаження

    swap_info(){

    #Структура файлу /proc/cpuinfo

    #Filename Type Size Used Priority

    #Зчитуємо вміст колонки Size

    readarray swap_sizes < <(cut -f3 '/proc/swaps')

    #Якщо кількість збігів рівна нулю

    if [[ ${#swap_sizes[@]} -eq 0 ]]; then

    dialog --msgbox "Колонку 'Size' не було знайдено у файлі '/proc/swaps'!"

    return -1

    fi

    local info

    for (( i = 1; i < ${#swap_sizes[@]}; i++ )); do

    info+="$i. Size: ${swap_sizes[i]}\n"

    done

    echo $info

    }
    #Головна функція скрипту

    main(){

    #Нескінченний цикл

    while true; do

    #Створюємо меню для перегляду характеристик

    sel_idx=$(dialog --title "Характеристики ОС" --stdout --menu "Оберіть характеристику:" 0 0 4 \

    0 "Пам'ять" \

    1 "Процесор" \

    2 "Файл довантаження" \

    3 "Вихід")
    #Перевіряємо результат команди

    if [[ ! $? -eq 0 ]]; then

    dialog --msgbox "Вибір не зроблено!" 0 0

    continue #знову відображаємо меню

    fi

    #Розриваємо цикл, якщо було обрано "Вихід"

    if [[ sel_idx -eq 3 ]]; then

    break;

    fi

    #Опис характеристик

    os_specs_d=("Обсяг вільної пам'яті" "Сім'я процесора" "Розмір файлу довантаження")

    #Імена функцій

    info_functions=('mem_info' 'proc_info' 'swap_info')

    #Викликаємо обрану функцію

    info=$(${info_functions[sel_idx]})

    #Перевіряємо чи містить результат код помилки

    if [[ $? -eq 0 ]]; then

    #Виводимо кінцеве повідомлення в msgbox

    dialog --msgbox "${os_specs_d[sel_idx]}\n$info" 0 0

    fi

    done; clear

    }
    #Виклик головної функції

    main

    Запускаємо наш скрипт:

    d_gergel@dell:/sp_cwork$ ./3.sh

    Головне меню скрипта:



    Пункт «Пам’ять»:



    Пункт «Процесор»:



    Пункт «Файл довантаження»



    ДРУГА ЧАСТИНА

    Етап 2.1. Автоматичне створення файла-скрипта заповнення таблиці БД
    1   2   3


    написать администратору сайта