Bash, jeśli stwierdzenia, jeśli, elif, else, to fi

Bash, jeśli stwierdzenia, jeśli, elif, else, to fi

Jeśli dopiero zaczynasz odkrywać język kodowania Bash, wkrótce chcesz stworzyć warunkowe stwierdzenia. Innymi słowy, stwierdzenia warunkowe zdefiniuj „Jeśli warunek jest prawdziwy, czy fałsz, to zrób to czy tamto, a jeśli jest odwrotnie, zrób coś w przeciwnym razie'. Jest to najbardziej podstawowa funkcja dowolnego instrukcji warunkowej.

Ten artykuł przedstawi Ci pięć podstawowych Jeśli Klauzule stwierdzenia. istnienie Jeśli, Elif, w przeciwnym razie, Następnie I fi. Pierwszy po prostu otwiera Jeśli stwierdzenie, Następnie wprowadza Co poleca wykonanie, jeśli warunek instrukcji był prawdziwy sekcja i w przeciwnym razie wprowadza Co poleca wykonanie, jeśli warunek instrukcji był fałszywy Sekcja. Wreszcie fi zamyka stwierdzenie. Mamy również specjalne Elif na którym zobaczymy więcej za minutę. Zacznijmy od łatwego przykładu.

W tym samouczku się nauczysz:

  • Jak wdrożyć Jeśli Instrukcja w wierszu poleceń Bash
  • Jak takie Jeśli Instrukcje mogą być również używane wewnątrz skryptów bash
  • Przykłady pokazujące ci Jeśli, Elif, w przeciwnym razie, Następnie I fi Klauzule w Bash
Bash, jeśli stwierdzenia: jeśli, elif, else, to fi

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Niezależny od rozkładu Linuksa
Oprogramowanie Wiersz poleceń Bash, system oparty na Linuksie
Inny Wszelkie narzędzie, które nie jest zawarte w skorupce Bash domyślnie można zainstalować za pomocą za pomocą sudo apt-get instal instal narzędzie (Lub Mnij instalacja dla systemów opartych na Redhat)
Konwencje # - Wymaga wykonywania Linux -Commands z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$-Wymaga wykonania Linux-commands jako zwykłego niepewnego użytkownika

Przykład 1: Prosta instrukcja IF w wierszu poleceń

$ if [1 -eq 1]; Następnie Echo „dopasował się!"; Fi pasował! 

W tym stwierdzeniu porównujemy jeden do jednego. Zauważ, że -Eq mieć na myśli równy. Aby zrobić odwrotnie, można użyć -ne co znaczy nie równe, Jak pokazano w poniższym przykładzie:

$ if [0 -NE 1]; Następnie Echo „dopasował się!"; Fi pasował! 

W tym przypadku sprawdziliśmy nierówność i jako 0 nie jest równe 1 Jeśli stwierdzenie jest prawdziwe, a polecenia po Następnie zostanie wykonane. Zmieńmy to nieznacznie:

$ jeśli [1 -NE 1]; Następnie Echo „dopasował się!„; else echo” nie jest dopasowane!"; Fi nie jest dopasowane! 

Tutaj przedstawiliśmy w przeciwnym razie klauzula; Co poleca wykonanie, gdy warunek w Jeśli Oświadczenie okazało się fałszywe (lub nie prawda). Gdy próbujemy zapytać, czy 1 nie jest równe (-ne) Do 1 tym razem i jako 1 jest równe 1 (co nie jest), warunek sformułowany w tym Jeśli stwierdzenie jest fałszywe i wpadamy na nasze w przeciwnym razie Oświadczenie z dopasowanym tekstem wydrukowanym.

Przykład 2: Korzystanie z instrukcji IF od skryptu powłoki bash

Warto zauważyć, że możesz łatwo skopiować i wkleić dowolne Jeśli Oświadczenie pokazane tutaj lub gdzie indziej i użyj go w skrypcie powłoki bash. Na przykład:

$ echo '#!/bin/bash '> myscript.sh $ echo 'if [1 -eq 1]; Następnie Echo „dopasował się!"; fi '>> myscript.sh $ chmod +x myscript.sh $ ./myscript.SH pasuje! $ 
Kopiuj

Tutaj po prostu stworzyliśmy mały Myscript.cii skrypt powłoki za pomocą Echo i > Przekierowanie, aby przekierować wyjście z naszego Echo do pliku. Kiedy używasz > zostanie utworzony nowy plik, a każdy plik o tej samej nazwie zostanie zastąpiony, więc użyj go z ostrożnością. Następnie dodamy naszą instrukcję IF, używając Echo i podwójnego przekierowania >> które w przeciwieństwie do > nie utworzy nowego pliku i po prostu dołącz tekst do wskazanego pliku.

Następnie my chmod +x skrypt, aby uczynić go wykonywaniem i wykonać skrypt za pomocą ./ Prefiks, który jest wymagany w BASH (wystąpi każdy prawidłowy specyfikator ścieżki).

Pierwszy wiersz skryptu polega po prostu upewnianie się, że będziemy używać interpretera bash dla naszego skryptu. Dobrą praktyką jest zawsze ustawienie tego dla Bash i innych skryptów (w przypadku innych skryptów, będziesz chciał ustawić to na dowolny interpreter, który zamierza wykonać twój skrypt, na przykład #!/usr/bin/python3 za Python 3 (.PY3 na przykład) skrypty itp.).

Kiedy wykonujemy skrypt, widzimy, że dane wyjściowe jest generowane zgodnie z oczekiwaniami (1 mecze 1): Dopasowany!.

Przykład 3: Co to jest Elif?

Elif Klauzula zapewnia nam dodatkową elastyczność skrótów krótko obniżając potrzebę zagnieżdżonych stwierdzeń. Rozważ następujące test.cii:

#!/bin/bash if [0 -eq 1]; następnie echo '0 = 1' else, jeśli [0 -eq 2]; następnie echo '0 = 2' else echo '0!= 2 'fi fi 
Kopiuj

I jego wyjście:

$ ./test.sh 0!= 2 


Tutaj przeszliśmy przez pierwszy Jeśli stwierdzenie i od czasu 0 nie pasuje 1, w przeciwnym razie Klauzula jest aktywowana. Dzieje się tak po raz drugi, kiedy 0 okazuje się również nierówne 2 I stąd -Eq (równy) Warunek się nie powiedzie, a drugi w przeciwnym razie Klauzula jest aktywowana, co daje jako wyjście 0!= 2. Porównajmy to z Elif oparte na następujących stwierdzeniach test2.cii.

#!/bin/bash if [0 -eq 1]; następnie echo '0 = 1' elif [0 -eq 2]; następnie echo '0 = 2' else echo '0!= 2 'fi 
Kopiuj

I jego wyjście:

$ ./test2.sh 0!= 2 

Skrypt zrobił dokładnie to samo, ale w znacznie bardziej elastyczny i krótszy sposób, wymagając tylko jednego poziomu Jeśli Głębokość instrukcji i z czystszym kodem ogólnym. Zwróć również uwagę, że można go mieć Jeśli oświadczenie, po których nastąpi wielu Elseif Oświadczenia, umożliwiające programistowi przetestowanie różnych warunków, to schludna struktura pojedynczego poziomu.

Wniosek

W tym artykule zbadaliśmy przykłady, które są przykładem Jeśli, Elif, w przeciwnym razie, Następnie I fi Klauzule w Bash. Przyjrzeliśmy się również, jak wdrożyć Jeśli Oświadczenia w wierszu poleceń Bash. Patrzyliśmy również na przeniesienie takich stwierdzeń w skrypty bash. Cieszyć się Jeśli oświadczenia w Bash i zostaw nam kilka myśli z najlepszymi Jeśli porady i wskazówki!

I dla nieco bardziej zaawansowanego spojrzenia na co Jeśli może zrobić dla Ciebie w połączeniu z subshellami, sprawdź nasze jak korzystanie z bash podsekwenci w artykule, jeśli instrukcje!

Powiązane samouczki Linux:

  • Mastering Bash Script Loops
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Zagnieżdżone pętle w skryptach Bash
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Bash Scripting: Warunki
  • Jak używać bash subshells w środku, jeśli instrukcje
  • Pętle bash z przykładami
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Ubuntu 20.04 Przewodnik