Команда выбора Bash — создание меню в сценариях оболочки

12 set 2022 1 min di lettura
Команда выбора Bash — создание меню в сценариях оболочки
Indice dei contenuti

Введение

Конструкция 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.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.