Bash, jeśli stwierdzenia, jeśli, elif, else, to fi
- 1306
- 315
- Roland Sokół
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
Ifi
Klauzule w Bash
Zastosowane wymagania i konwencje oprogramowania
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
- « Jak usunąć serwer WWW Apache z Ubuntu
- Zarządzanie listami procesowymi i automatyczne rozwiązanie procesu »