Bash, jeśli stwierdzenia, jeśli, elif, else, to fi
- 1335
- 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śliInstrukcja w wierszu poleceń Bash - Jak takie
JeśliInstrukcje mogą być również używane wewnątrz skryptów bash - Przykłady pokazujące ci
Jeśli,Elif,w przeciwnym razie,NastępnieIfiKlauzule w Bash
Bash, jeśli stwierdzenia: jeśli, elif, else, to fi 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 »