Bash - создание пользовательского меню

Автор: Admin

Дата:2013-01-30

Создание меню в bash

1) Изучаем BASH (Основы)

2) Изучаем BASH (Инструкции)

3) Проверка условий в Bash

4) Циклы в Bash

5) Управление вводом и выводом в сценариях

6) Функции в Bash

Хотя Bash используется как скриптовой язык и в основном системными администраторами, то по своей сути создавать меню на нем не наше дело, однако эту возможность просто необходимо знать и понимать как она работает в нем.
Одним из самых старых и широко применяемых способов создания пользовательского меню при помощи Bash является использование команды case и команды select.

В этом материале мы рассмотрим пример с командой case.
case $options in
0 | 1)
    команда1;;
2)
    команда2;;
*)
    clear

Пример меню:

#Создаем функции
#!/bin/bash
function ping_ya {
clear
ping -c 3 ya.ru
}
function  ifconfig {
clear
/sbin/ifconfig
}
function meminfo {
clear
/bin/cat /proc/meminfo
}

#Создаем меню
function menu {
clear
echo
echo -e "\t\t\tМеню скрипта\n"
echo -e "\t1. Пинговать ya.ru"
echo -e "\t2. Информация об интерфейсах"
echo -e "\t3. Информация о памяти"
echo -e "\t0. Выход"
echo -en "\t\tВведите номер раздела: "
read -n 1 option
}

#Используем цикл While и команду Case для создания меню.
while [ $? -ne 1 ]
do
        menu
        case $option in
0)
        break ;;
1)
        ping_ya ;;
2)
        ifconfig ;;
3)
        meminfo ;;
*)
        clear
echo "Нужно выбрать раздел";;
esac
echo -en "\n\n\t\t\tНажмите любую клавишу для продолжения"
read -n 1 line
done
clear

Вот так будет выглядить наше меню после запуска скрипта:


        Меню скрипта:

        1. Пинговать ya.ru

        2. Информация об интерфейсах

        3. Информация о памяти

        0. Выход


        Введите номер раздела:

Количество просмотров: 10908

Комментарии к статье:

Автор комментария: Сергей
Дата: 2019-09-18

Спасибо! Помогли создать простенькое меню для Raspberry Pi :)

Добавить комментарий

Введите сумму с картинки

© Plutonit.ru - Администрирование, настройка Linux и Windows 2009 - 2024