Dopasowywany wzór w instrukcji Case Bash

Dopasowywany wzór w instrukcji Case Bash

W programowaniu BASH instrukcja przypadku pomaga uprościć złożone warunki, gdy istnieje wiele różnych opcji. Zamiast używać zagnieżdżonych instrukcji, możemy zamiast tego użyć instrukcji sprawy, aby kod bash był bardziej czytelny i możliwy do utrzymania.

Instrukcja Bash Case podziela podobieństwa do instrukcji JavaScript i C. Jednak główną różnicą jest to, że po dopasowaniu wzoru nie szuka żadnego dodatkowego dopasowania wzoru.

Niniejszy przewodnik obejmie podstawy oświadczenia o sprawach Bash z różnymi przykładami.

Oświadczenie o przypadku bash

Podstawowa struktura oświadczenia sprawy jest następująca.

sprawa W
)
sprawozdania
;;
)
sprawozdania
;;
*)
sprawozdania
;;
esac

Oto krótki podział struktury:

  • Instrukcja sprawy rozpocznie się od słowa kluczowego „przypadek” i zakończy słowem kluczowym „ESAC”, podobnie jak w przypadku, gdy warunkowe zacznie się od „If” i kończy się „FI”.
  • Może istnieć wiele wzorów oddzielonych „|”. Operator „)” oznacza koniec listy wzorów.
  • Wzory mogą zawierać znaki specjalne.
  • Po dopasowaniu wzoru jego powiązane polecenia zostaną wykonane. Razem nazywa się to klauzulą. Każda klauzula musi zakończyć się „;;”. Zatrzymuje każdą próbę dopasowania do dalszych wzorów.
  • Klauzula wieloznaczna (*) jest powszechną praktyką zdefiniowania domyślnego przypadku. Zawsze będzie pasował do tego stanu.
  • Jeśli nie pasuje do wzoru, instrukcja przypadku zwraca zero. W przeciwnym razie zwróci wartość wyjściową wykonanych poleceń.

Zrozumienie stwierdzenia Bash IF-Else jest korzystne w zrozumieniu i opanowaniu stwierdzenia sprawy Bash.

Przykłady oświadczenia o przypadku bash

Instrukcja przypadku przy użyciu wartości liczbowych

Teraz, gdy znamy podstawy, czas sprawdzić to w akcji. Spójrz na następujący skrypt.

#!/bin/bash
echo -n „Wprowadź wartość:”
czytaj wartość
sprawa $ wartość w
1)
echo „One” ;;
2)
echo „Two” ;;
3)
echo „trzy” ;;
4 | 5)
echo „większe niż trzy” ;;
*)
echo „nieznana wartość” ;;
esac

Zapisz skrypt. Oznacz go jako wykonywalną.

$ chmod +x próbka.cii

Teraz uruchom skrypt.

$ ./próbka.cii

Skrypt poprosi o wprowadzenie wartości. Jeśli wartość pasuje do któregokolwiek z wzorców, wykonuje klauzulę pasującą. Jeśli nie znaleziono żadnego meczu, to będzie zgodne z domyślną klauzulą.

Instrukcja sprawy za pomocą ciągów

W następnym przykładzie użyjemy ciągów do dopasowania wartości.

#!/bin/bash
echo -n „Wprowadź planet:”
Przeczytaj planetę
sprawa $ planeta w
Merkury | Wenus | Ziemia | Mars | Jowisz | Saturn | Uran | Neptun)
Echo „$ Planet to planeta z Układu Słonecznego”
;;
Pluton)
Echo „$ Planet to planeta krasnoludna”
;;
„Planet Nine”)
echo „$ Planet jeszcze nie odkryta”
;;
*)
echo „nie z układu słonecznego”
;;
esac

Skrypt będzie działał jak pierwszy przykład. Poprosi o nazwę planet, sprawdź, czy wejście pasuje do jakiejkolwiek klauzuli i wykonuje klauzulę pasującą.

Jeśli dokładnie zbadałeś, zauważysz, że „Planet Nine” jest jedyną wartością zapakowaną w cytaty. To dlatego, że jest w tym miejsce. Korzystając z cytatów, mówimy powłoki, aby traktował ją jako część jednego wzoru.

Wrażliwość na przypadek w przypadku stwierdzenia

Zauważ, że w ostatnim przykładzie wejście jest wrażliwe na wielkość liter. To jest domyślne zachowanie Bash. Możemy jednak powiedzieć Shellowi, aby uruchomił skrypt w trybie bezsensownym.

Aby to zrobić, dodaj następujący wiersz na początku skryptu.

$ shopt -s nocasematch

Skrypt powinien wyglądać tak.


Teraz sprawdź skrypt. Wprowadź wartość z inną sprawą.

$ ./próbka.cii

Końcowa myśl

Niniejszy przewodnik obejmuje podstawy stwierdzeń spraw Bash. Pokazuje także, jak je wdrożyć w skryptach Bash. Powinieneś czuć się komfortowo przy użyciu instrukcji Case. Instrukcje przypadków bash są często używane do przekazywania parametrów do skorupy skorupowych z wiersza poleceń. Na przykład scenariusze inicjów używają instrukcji przypadków, aby uruchomić, zatrzymać i ponownie uruchomić usługi. Po przeczytaniu tego przewodnika będziesz mógł wdrożyć instrukcję BASH Case w swoich skryptach.

Szczęśliwy komputer!