🐧 Bash Select (создание меню в скриптах shell)

by itisgood

Конструкция 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
Теперь запустите скрипт с помощью 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.

You may also like

Leave a Comment