Polecenie Bash Select

Polecenie Bash Select
Wybierać Polecenie jest używane w skryptach do tworzenia menu. Różne rodzaje zadań generowania menu można zaimplementować z wybierać Polecenie takie jak: Tworzenie listy reżysera opartego na menu, tworzenie menu z zawartości pliku itp. Jak możesz wdrożyć tego rodzaju zadania za pomocą BASH wybierać Polecenie jest pokazane w tym samouczku wskazów Linux.

Składnia:

Wybierz v w data_list
Do
Oświadczenie 1
Oświadczenie 2
Oświadczenie3
zrobione

Tutaj element menu zostanie utworzony z listy danych, który może być tablicą lub innym źródłem danych. Każda pozycja menu pobiera z listy danych i przechowuje w zmiennej, aby utworzyć menu. Polecenie „Wybierz” można użyć z poleceniem „Case”, aby utworzyć menu. Różne rodzaje zadań tworzenia menu pokazano tutaj przy użyciu bardzo prostych przykładów.

Przykład-1: Tworzenie prostego menu

Utwórz plik bash o nazwie Select1.cii z następującym skryptem Bash. Tutaj, 'wybierać' Polecenie pobiera wszystkie dane z listy i wydrukuje dane jako menu. Poniższy skrypt zawiera marki telefonów komórkowych i po wykonaniu skryptu utworzy menu marek mobilnych i poprosi użytkownika o wybranie dowolnej marki. Wydrukuje nazwę wybranej marki. Użytkownik musi naciskać Ctrl+c zakończyć skrypt.

#!/bin/bash
# Zdefiniuj listę menu tutaj
Wybierz markę w Samsung Sony iPhone Symphony Walton
Do
echo „Wybrałeś markę $”
zrobione

Wyjście:

Uruchom skrypt.

$ bash select1.cii

Następujące dane wyjściowe pojawi się po uruchomieniu skryptu i wybraniu elementu menu numer 1 i 4.

Przykład-2: Wybierz polecenie z instrukcją sprawy

Jak utworzyć menu Bash z instrukcją przypadku, jest pokazane w tym przykładzie. Utwórz plik bash o nazwie Select2.cii z następującym skryptem Bash. Po uruchomieniu skryptu użytkownik wybierze dowolny element menu, a instrukcja przypadku będzie pasować do wybranej wartości do wartości przypadku. Tutaj do dopasowywania się do dopasowywania się do dopasowania do wybranego elementu menu. Jeśli żadna z wartości przypadku nie pasuje do wybranego elementu menu, wydrukuje „nieprawidłowy wpis”.

#!/bin/bash
echo "Który system operacyjny lubisz?"
# Nazwy systemów operacyjnych są używane tutaj jako źródło danych
Wybierz OS w Ubuntu LinuxMint Windows8 Windows7 Windowsxp
Do
Case $ OS in
# Dwie wartości są tutaj zadeklarowane do dopasowywania
„Ubuntu” | „LinuxMint”)
echo „Używam również $ OS."
;;
# Zadeklarowane są tutaj trzy wartości przypadków do dopasowywania
„Windows8” | „Windows7” | "Windows XP")
echo "Dlaczego nie wypróbujesz Linux?"
;;
# Dopasowanie do nieprawidłowych danych
*)
Echo „Nieprawidłowy wpis."
przerwa
;;
esac
zrobione

Wyjście:
Uruchom skrypt.

$ bash select2.cii

Różne wyjście pojawią się dla innego wyboru. Tutaj 1 jest wybrany za pierwszym razem, że Ubuntu. Dopasowało to do pierwszej wartości, wydrukuj wiadomość „Używam też Ubuntu”. 4 jest wybierane następnym razem, a element menu jest System Windows 7 ale nie ma wartości z tą nazwą. Tym razem wydrukował "Niewłaściwy wpis" i zakończ skrypt.

Przykład-3: Tworzenie zagnieżdżonych menu Bash

Gdy każde menu jest tworzone w menu drugiej, nazywa się go zagnieżdżonym menu. Zagnieżdżone menu można utworzyć w bazie za pomocą dwóch lub więcej instrukcji wyboru i obudowy. Utwórz plik bash o nazwie Select3.cii z następującym skryptem Bash. Tutaj do wdrożenia zagnieżdżonego menu używane są dwa instrukcje wyboru i. Menu nadrzędne zawiera 4 elementy, a podmenu zawiera 3 elementy tutaj.

#!/bin/bash
choć prawda
Do
# Pozycje menu nadrzędnego zadeklarowane tutaj
Wybierz element w monitorze monito
Do
# Instrukcja sprawy do porównania pierwszych elementów menu
sprawa $ pozycja
Mysz)
echo ", jaki rodzaj monitora lubisz?"
;;
Drukarka)
# Przedmioty podmenu tutaj zadeklarowane tutaj
Wybierz Sub_Item w Samsung HP Dell
Do
# Oświadczenie o elementach Sun-Menu
case $ sub_item w
SAMSUNG)
Echo „Cena drukarki Samsung wynosi 100 USD”
przerwa
;;
HP)
Echo „Nowa drukarka cenowa HP 880 wynosi 450 USD”
# Wróć do menu nadrzędnego
przerwa
;;
Dell)
Echo „No Dell Printer jest już dostępna”
# Wróć do menu nadrzędnego
Break 2
;;
esac
zrobione
przerwa
;;
Monitor)
echo „Kup nasz nowy Monitor Samsung po niskich kosztach”
Break # Wróć do bieżącego (głównego) menu
;;
HDD)
Echo „Dobra jakość dysku twardego jest dostępna w magazynie”
# Powrót ze skryptu
Break 2
esac
zrobione
zrobione

Wyjście:

Uruchom skrypt.

$ bash select3.cii

Po uruchomieniu skryptu menu nadrzędne z wyświetlonymi 4 elementami. Tutaj tylko druga pozycja menu menu nadrzędnego zawiera submenu. Po wybraniu 2 pojawił się podmenu, a po wybraniu użytkownika 3 wyświetlał dopasowy komunikat menu pozycja 3 i powróci do menu nadrzędnego.

Przykład-4: Utwórz menu Bash z tablicą

Zmienna tablicy może przechowywać wiele danych. Możesz więc użyć tablicy jako listy danych do tworzenia menu podstawowego. Jak możesz użyć tablicy z instrukcją wyboru, aby utworzyć menu, jest pokazany w tym przykładzie. Utwórz plik bash o nazwie Select4.cii z następującym skryptem Bash. Bash podprogram jest używany w tym skrypcie do utworzenia menu z tablicy. Stosuje się tablicę z trzema elementami i menu_from_array () jest wywoływany w celu utworzenia menu. Skrypt sprawdzi wybrany numer elementu menu od 1-3 lub nie. Jeśli liczba nie znajduje się w tym zakresie, instruuje użytkownika wybierz go w tym zakresie, wydrukuje element menu wybierz z innym tekstem.

#!/bin/bash
menu_from_array ()

Wybierz przedmiot; Do
# Sprawdź numer elementu menu
jeśli [1 -le „$ odpowiedź”] && [„$ odpowiedź” -le $#];
Następnie
echo „Wybrany system operacyjny to $ pozycja”
przerwa;
w przeciwnym razie
echo „niewłaściwy wybór: wybierz dowolną liczbę od 1-$#”
fi
zrobione

# Deklaruj tablicę
Linux = („Ubuntu” „Linux Mint” „Centos”)
# Zadzwoń do podprogramu, aby utworzyć menu
menu_from_array "$ Linux [@]"

Wyjście:

Uruchom skrypt.

$ bash select4.cii

Tutaj wybrano 2, który znajduje się w zakresie i wydrukowane tekst. 6 jest wybrany po raz drugi, który jest poza zasięgiem i sugeruje, że użytkownik wybierze liczbę w zakresie.


Aby zrozumieć ten kod, powinniśmy nauczyć się kilku sztuczek 😉

  • Ponieważ W Lista nie jest podana w wybranych parametrach pozycji, które są w tym przypadku słowa w tablicy przekazywanej do funkcji
  • $ Odpowiedź przechowuje wejście wartości przez użytkownika
  • Logiczne IF i warunkowe w funkcji sprawdzają, że odpowiedź wynosi od 1 do wielkości tablicy parametrów pozycji

Wniosek

Zadanie tworzenia menu Bash za pomocą instrukcji Select jest wyjaśnione w tym samouczku tak proste, jak to możliwe. Istnieje wiele prostych i fantazyjnych sposobów korzystania z wybranych w Bash podczas tworzenia menu i mamy nadzieję, że te przykłady dają ci punkt wyjścia do stworzenia własnych kombinacji.