Конструкция Bash Select используется для создания нумерованного меню из списка пунктов.
Синтаксис
Оператор select имеет синтаксис, схожий с синтаксисом “цикла for”:
select ITEM in [List] do [commands] done
Здесь список может быть массивом, диапазоном чисел, серией строк, разделенных пробелом, выводом команды и т. д.
Пример Bash select
Давайте разберем конструкцию 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’.
Нажмите 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
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.