logo

Sprawa Basha

W tym temacie omówimy podstawy instrukcji case i sposoby ich wykorzystania w skryptach Bash.

Instrukcja case Bash jest najprostszą formą JEŻELI-TO-ELSE z wieloma elementami ELIF. Użycie instrukcji case sprawia, że ​​nasz skrypt bash jest bardziej czytelny i łatwiejszy w utrzymaniu. Są one powszechnie stosowane w celu uproszczenia złożonych warunków z wieloma różnymi możliwościami wyboru.

Instrukcja case Bash ma podobną logikę jak instrukcja switch w JavaScript lub C. Istnieje niewielka różnica, jak następuje:

  • Instrukcja case Bash pobiera wartość raz i testuje tę wartość wielokrotnie. Przestaje szukać wzorca po jego znalezieniu i wykonaniu powiązanej z nim instrukcji, co jest niemal odwrotne w przypadku instrukcji switch w języku C.

Składnia opisu przypadku

Składnia instrukcji case bash jest podana poniżej:

 case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac 

Istnieje kilka kluczowych punktów instrukcji case bash:

  • Każda instrukcja case w bashu zaczyna się od słowa kluczowego „case”, po którym następuje wyrażenie case i słowo kluczowe „in”. Opis przypadku zamykany jest słowem kluczowym „esac”.
  • Możemy zastosować wiele wzorów oddzielonych znakiem | operator. Operator ) wskazuje zakończenie listy wzorców.
  • Wzorzec zawierający instrukcje nazywany jest klauzulą ​​i musi być zakończony podwójnym średnikiem (;;).
  • Symbol gwiazdki (*) jest używany jako ostateczny wzór definiujący domyślny przypadek. Jest używany jako przypadek domyślny, gdy jest używany jako ostatni przypadek.

Jak to działa

Po pierwsze, instrukcja case rozwija wyrażenie i stara się dopasować do każdego z zawartych wzorców. Po znalezieniu dopasowania wszystkie połączone instrukcje są wykonywane aż do podwójnego średnika (;;). Po pierwszym dopasowaniu sprawa kończy się statusem wyjścia ostatniej wykonanej instrukcji.

Jeśli nie ma pasującego wzorca, status wyjścia sprawy wynosi zero. W przeciwnym razie status powrotu jest statusem wyjścia wykonanych instrukcji.

Jeśli zostanie użyty domyślny wzór gwiazdki, zostanie on wykonany w przypadku braku pasującego wzorca.

Spróbujmy zrozumieć ten mechanizm na kilku przykładach:

Przykład 1

W tym przykładzie zdefiniowaliśmy prosty scenariusz demonstrujący użycie instrukcji case.

Skrypt Basha

 #!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac 

Wyjście

Sprawa Basha

Przykład 2

W tym przykładzie zdefiniowaliśmy scenariusz łączony, w którym występuje również przypadek domyślny, gdy nie znaleziono żadnego wcześniej dopasowanego przypadku.

Dołącz ciąg Java

Skrypt Basha

 #!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac 

Wyjście

Uruchomiliśmy skrypt z trzema różnymi danymi wejściowymi. Sprawdź wynik poniżej:

Sprawa Basha

Wniosek

W tym temacie poznaliśmy składnię i użycie instrukcji Bash Case na przykładach.