Введение
Конструкция Bash Select используется для создания нумерованного меню из списка элементов.
Синтаксис
Оператор select имеет синтаксис, аналогичный циклу for, и выглядит следующим образом:
select ITEM in [List]
do
[commands]
done
Здесь список может быть массивом, диапазоном чисел, последовательностью строк, разделенных пробелами, выводом команды и т. д. И когда вызывается конструкция select, каждый элемент списка будет напечатан с пронумерованной последовательностью. Конструкция будет продолжать работать до тех пор, пока не будет выполнена команда break.
Баш Выберите пример
Давайте разберем конструкцию select на примере. Здесь мы создали сценарий bash с именем brand.sh, и команда select используется для извлечения данных из списка в виде меню. Скрипт сначала напечатает название всех брендов в списке, а затем попросит пользователя выбрать один и напечатать название выбранного бренда:
#!/bin/bash
select brand in Apple Google Microsoft Amazon Meta
do
echo "You have chosen $brand"
done
Запустите скрипт с помощью bash brand.sh. Вы увидите следующий вывод:
1) Apple
2) Google
3) Microsoft
4) Amazon
5) Meta
#? 1
You have chosen Apple
#? 3
You have chosen Microsoft
#? ^C
Нажмите CTRL + C, чтобы выйти.
Другой пример
Давайте рассмотрим еще один пример конструкции select, чтобы увидеть, как она работает с оператором case.
Здесь мы создадим новый файл с именем select.sh, и как только файл будет выполнен, пользователь выберет любой элемент, после чего оператор case будет соответствовать элементу со значением case. Если значение не найдено , будет напечатано «Invalid Entry»:
#!/bin/bash
echo "Which Operating System do you like?"
select os in Ubuntu LinuxMint Windows8 Windows7 WindowsXP
do
case $os in
"Ubuntu"|"LinuxMint")
echo "I also use $os."
;;
"Windows8" | "Windows10" | "WindowsXP")
echo "Why don't you try Linux?"
;;
*)
echo "Invalid entry."
break
;;
esac
done
Теперь запустите скрипт с помощью bash select.sh, и вы увидите следующий вывод.
1) Ubuntu 3) Fedora 5) Windows7
2) LinuxMint 4) Windows8 6) WindowsXP
#? 1
I also use Ubuntu.
#? 2
I also use LinuxMint.
#? 4
Why don't you try Linux?
#? 7
Invalid entry.
Вывод
В этом руководстве рассказывается, как использовать команду select в сценариях bash.