<Попередній | зміст | Наступна>
Меню
Поширений вид інтерактивності називається за меню. У програмах, що керуються меню, користувачеві надається список варіантів і пропонується вибрати один. Наприклад, ми можемо уявити собі програму, яка представляє наступне:
Оберіть будь ласка:
1. Відображення системної інформації
2. Відобразити дисковий простір
3. Відображення використання домашнього простору
0. Киньте
Введіть вибір [0-3] >
Оберіть будь ласка:
1. Відображення системної інформації
2. Відобразити дисковий простір
3. Відображення використання домашнього простору
0. Киньте
Введіть вибір [0-3] >
Використовуючи те, що ми навчилися з написання нашого сторінка sys_info програми, ми можемо створити програму, керовану меню, для виконання завдань у наведеному вище меню:
#! / бін / баш
# read-menu: очищення системної інформаційної програми на основі меню
луна"
Оберіть будь ласка:
1. Відображення системної інформації
2. Відобразити дисковий простір
3. Відображення використання домашнього простору
0. Вийти "
read -p "Введіть вибір [0-3] > "
#! / бін / баш
# read-menu: очищення системної інформаційної програми на основі меню
луна"
Оберіть будь ласка:
1. Відображення системної інформації
2. Відобразити дисковий простір
3. Відображення використання домашнього простору
0. Вийти "
read -p "Введіть вибір [0-3] > "
якщо [[ $REPLY =~ ^[0-3]$ ]]; тоді якщо [[ $REPLY == 0 ]]; тоді
echo «Програму припинено». вихід
fi
якщо [[ $REPLY == 1 ]]; потім лунайте "Ім'я хосту: $HOSTNAME" час роботи
вихід
fi
якщо [[ $REPLY == 2 ]]; потім df -h
вихід
fi
якщо [[ $REPLY == 3 ]]; тоді
якщо [[ $(id -u) -eq 0 ]]; тоді
echo "Використання домашнього простору (всі користувачі)" du -sh /home/*
ще
echo "Використання домашнього простору ($USER)" du -sh $HOME
fi вихід
fi ще
echo "Недійсний запис." >&2 вихід 1
fi
якщо [[ $REPLY =~ ^[0-3]$ ]]; тоді якщо [[ $REPLY == 0 ]]; тоді
echo «Програму припинено». вихід
fi
якщо [[ $REPLY == 1 ]]; потім лунайте "Ім'я хосту: $HOSTNAME" час роботи
вихід
fi
якщо [[ $REPLY == 2 ]]; потім df -h
вихід
fi
якщо [[ $REPLY == 3 ]]; тоді
якщо [[ $(id -u) -eq 0 ]]; тоді
echo "Використання домашнього простору (всі користувачі)" du -sh /home/*
ще
echo "Використання домашнього простору ($USER)" du -sh $HOME
fi вихід
fi ще
echo "Недійсний запис." >&2 вихід 1
fi
Цей сценарій логічно розділений на дві частини. Перша частина відображає меню та вводить відповідь користувача. Друга частина визначає відповідь і виконує обрану дію. Зверніть увагу на використання вихід команду в цьому скрипті. Він використовується тут, щоб запобігти виконання сценарієм непотрібного коду після виконання дії. Наявність кількох точок виходу в програмі, як правило, погана ідея (це ускладнює розуміння логіки програми), але вона працює в цьому сценарії.