50% zniżki wszystkie plany, ograniczony czas. Rozpoczęcie o godz $2.48/mo
Pozostało 10 minut
Serwery i system operacyjny

Instrukcja Bash If: składnia, odmiany, przypadki użycia, polecenia i wiele więcej!

Piusa Bodenmanna By Piusa Bodenmanna 10 minut czytania Zaktualizowano 28 stycznia 2024 r
skrypty basha

W skryptach powłoki instrukcje Bash if odgrywają kluczową rolę, umożliwiając programistom tworzenie warunkowych ścieżek wykonania w oparciu o różne sytuacje. Zasadniczo instrukcje if umożliwiają nam podejmowanie decyzji w skryptach Bash, biorąc pod uwagę takie czynniki, jak wyniki testów, dane wejściowe użytkownika lub stany systemu. To sposób na poruszanie się po różnych możliwościach.

Podczas korzystania ze skryptów Bash instrukcja if ma określoną strukturę. Zwykle zaczyna się od „if”, po którym następuje warunek wymagający oceny, słowo „Następnie” i jedno lub więcej poleceń do wykonania, jeśli warunek jest spełniony.

Aby zapewnić większą elastyczność, instrukcja if może również zawierać opcjonalną opcję „Elif" (else if), która wchodzi w grę, gdy warunek początkowy jest fałszywy. Pozwala przetestować dodatkowy warunek i odpowiednio postępować. Dodatkowo instrukcja if może zawierać opcjonalną instrukcję „else”, która zostanie wykonana, jeśli żaden z warunków nie będzie spełniony.

Łącząc instrukcje if z innymi poleceniami Bash i funkcjami skryptów powłoki, programiści mogą tworzyć zaawansowane skrypty zdolne do automatyzacji złożonych zadań i procesów. Zostań tutaj, aby dowiedzieć się więcej o instrukcji Bash if, w tym o jej składni, przypadkach użycia i przykładach!

Składnia instrukcji Bash If

Składnia Bash odnosi się do reguł rządzących strukturą i gramatyką poleceń i skryptów napisanych w języku powłoki Bash. Składnia Bash obejmuje różnorodne konstrukcje i elementy, takie jak:

  • Polecenia: Są to indywidualne programy wykonywalne lub wbudowane powłoki, które służą do wykonywania określonych zadań. Za pomocą tych uroczych linijek większość czasu będziesz programować w języku Bash.
  • Argumenty: Są to wartości przekazywane do poleceń w celu określenia opcji, parametrów lub danych wejściowych. Pomyśl o nich jak o warunkach ustawionych dla polecenia w celu określenia jego parametrów wykonania.
  • Zmienne: Są to symbole reprezentujące wartości, które można przypisywać, którymi można manipulować lub których można używać w wyrażeniach. Są one powszechnie używane do określenia wartości, z którymi muszą sobie poradzić zarówno polecenia, jak i argumenty.
  • Przekierowanie: Jest to proces przekierowywania danych wejściowych, wyjściowych lub błędów do lub z plików, urządzeń lub innych poleceń. Bez nich istnieje duże prawdopodobieństwo, że Twoje polecenia będą kierowane w niewłaściwe miejsce docelowe i zepsują kod.
  • Kobza: Jest to mechanizm łączenia wyjścia jednego polecenia z wejściem innego polecenia. Są one zwykle używane do wykonywania zaawansowanych warunkowych wierszy poleceń w dużych programach oraz do tworzenia przeplatających się wierszy poleceń.
  • Struktury kontrolne: Są to konstrukcje kontrolujące przepływ wykonywania poleceń, takie jak pętle, instrukcje warunkowe i funkcje. Zrozumienie struktury sterującej jest kluczem do tworzenia nowych wierszy poleceń i zapewnia inny poziom głębi Twojemu kodowi.
  • Uwagi: Są to adnotacje ignorowane przez powłokę i używane do dokumentowania kodu lub dostarczania wyjaśnień. Są to ważne punkty odniesienia podczas wykonywania analiz i debugowania, szczególnie w projektach grupowych.

Składnia Bash musi być napisana poprawnie, aby powłoka mogła interpretować i wykonywać polecenia. Błędy składni mogą powodować, że powłoka będzie generować komunikaty o błędach lub nieoczekiwane zachowanie.

Oto instrukcja Bash if w akcji:

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

W naszym przypadku „warunek” odnosi się do testu, który daje wynik prawdziwy lub fałszywy. Gdy warunek jest spełniony, wykonywane są kolejne polecenia podane po słowie kluczowym „then”. Załóżmy teraz, że zamiast tego chcemy ocenić dodatkowy warunek. Możemy w tym celu użyć słowa kluczowego „elif”. Umożliwia rozważenie innej możliwości. Teraz, jeśli żaden z warunków nie jest spełniony, w grę wchodzą polecenia określone po słowie kluczowym „else”. To jak plan awaryjny. Na koniec, aby wskazać zakończenie instrukcji if, używamy słowa kluczowego „if”.

Jak działają instrukcje Bash?

Jeśli chodzi o skrypty w języku Bash, instrukcja if staje się całkiem przydatna w kierowaniu przebiegiem skryptu w oparciu o wynik testu warunkowego. Jego celem jest ocena warunku i, jeśli okaże się, że jest prawdziwy, wykonanie określonego zestawu poleceń.

Przyjrzyjmy się teraz, jak zwykle wygląda sytuacja, gdy w skrypcie Bash pojawia się instrukcja if. Skrypt potrzebuje chwili, aby ocenić warunek wymieniony w instrukcji if. Jeśli warunek okaże się prawdziwy, polecenia zapisane w bloku „wtedy” przyjdą na kolej do wykonania.

Jeśli jednak warunek okaże się fałszywy, skrypt zacznie oceniać dodatkowe warunki elif. Jeśli którykolwiek z tych warunków jest spełniony, polecenia odpowiedniego bloku elif są wykonywane. W przypadku, gdy żaden z warunków określonych w instrukcjach if i elif nie wydaje się prawdziwy, skrypt potwierdza to i kontynuuje wykonywanie poleceń określonych w bloku else (jeśli uwzględniono blok else).

Zasadniczo instrukcja if służy do ułatwienia podejmowania decyzji w skrypcie, umożliwiając mu przemierzanie różnych ścieżek wykonania w zależności od wyniku testu. Sam test może uwzględniać różne czynniki, takie jak wynik polecenia lub wartość przypisana do zmiennej.

Przykład instrukcji Bash If

Wyjdźmy teraz z podstawowej teorii i zobaczmy, jak instrukcja Bash if może zostać wykorzystana w aktywnym rozwoju kodowania. Oto przykład ilustrujący działanie instrukcji Bash if:

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

W tym przykładzie instrukcja if ocenia wartość zmiennej x. Jeśli x jest większe niż 4, skrypt wykonuje polecenie wypisania „x jest większe niż 4”. Jeśli x jest mniejsze lub równe 4, skrypt wykonuje polecenie wypisania „x jest mniejsze lub równe 4”.

Teraz, gdy już dobrze rozumiesz samą instrukcję Basha If i sposób jej działania, przyjrzyjmy się bliżej odmianom i powiązanym z nią poleceniom oraz dowiedz się więcej o podstawowych instrukcjach if, zagnieżdżonych instrukcjach if, instrukcjach Bash If Else, If Elif Else i instrukcjach przypadków.

Podstawowe instrukcje if

Zacznijmy od podstawowej instrukcji bash if. Instrukcja if w Bash sprawdza, czy warunek jest prawdziwy i odpowiednio wykonuje blok powiązanych kodów. Oto składnia:

if [ condition ]
then
  commands
fi

W tym przypadku skrypt ocenia warunek i jeśli jest prawdziwy, wykonywane są określone polecenia. Jeżeli warunek jest fałszywy, skrypt przechodzi do następnego polecenia bez wykonywania bloku w sekcji „wtedy”.

Zagnieżdżone instrukcje if

Zagnieżdżona instrukcja if, jak sugeruje nazwa kreacji, to instrukcja if, która jest „zagnieżdżona” w innej instrukcji if. Ta zagnieżdżona struktura pozwala na bardziej złożone testy i analizy w skrypcie. Oto przykład zagnieżdżonej instrukcji if:

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

W poleceniach widać, że skrypt ocenia warunek 1 jako pierwszy krok. Jeśli warunek 1 zostanie zweryfikowany jako prawdziwy, następnie ocenia warunek 2. Jeśli warunek2 jest również spełniony, skrypt wykonuje potrzebne polecenia.

Bashuj instrukcje If Else

Instrukcja Bash if else umożliwia podejmowanie decyzji w skrypcie na podstawie tego, czy warunek jest prawdziwy, czy fałszywy, umożliwiając bardziej zaawansowane wykonanie kodu sytuacyjnego. Oto jak wygląda struktura:

if [ condition ]
then
  commands1
else
  commands2
fi

Konstrukcja ta zapewnia, że ​​jeśli warunek zostanie spełniony, skrypt szybko wykona „polecenia 1”. Jeśli jednak warunek jest fałszywy, nastąpi przełączenie na wykonanie „poleceń 2”.

Jeśli Elif Inaczej Oświadczenia

Czasami trzeba wziąć pod uwagę wiele warunków i ich odpowiednie wyniki. Instrukcja if elif else pozwala dokładnie to osiągnąć. Przestrzegaj następującej składni:

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

W tym przypadku skrypt najpierw ocenia warunek 1. Jeśli jest to zweryfikowane, to prawda; szybko wykona polecenia1. Jeśli jednak warunek 1 jest fałszywy, skrypt przechodzi do oceny warunku 2. Jeżeli warunek2 jest spełniony, następuje wykonanie poleceń2. A jeśli zarówno warunek1, jak i warunek2 okażą się fałszywe, Twój skrypt wybierze wariant alternatywny, który wykonuje polecenia3.

Opisy przypadków

W Bash masz instrukcję case, która działa podobnie do instrukcji switch występującej w innych językach programowania. Umożliwia wykonywanie różnych zestawów poleceń w oparciu o wartość zmiennej. Spójrz na strukturę:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

W tym przypadku skrypt ocenia zmienną wyrażenia i dopasowuje ją do różnych wzorców. Po znalezieniu dopasowania wykonywany jest odpowiedni zestaw poleceń. Jeśli jednak nie zostanie znalezione żadne dopasowanie, polecenia domyślne zostaną bezpiecznie wykonane. Wzorzec gwiazdki (*) działa jak symbol wieloznaczny, pasujący do wszystkiego, co nie zostało ujęte.

Operatory logiczne Bash

Kolejną ważną częścią machinacji instrukcji Bash if jest operator logiczny. Operatory te umożliwiają łączenie wielu warunków, umożliwiając podejmowanie decyzji na podstawie prawdziwości lub fałszywości tych połączonych warunków. Bash zawiera trzy podstawowe operatory logiczne do wykorzystania w instrukcjach if. Oto przykłady trzech głównych typów logicznych poleceń operatora.

  • Bash ORAZ (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Logiczne lub (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • Nierówny:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Wniosek

W tym poście na blogu zamieściliśmy wprowadzający przewodnik na temat instrukcji basha if i tego, jak z nich korzystać. Omówiliśmy także, w jaki sposób mogą sprawić, że Twój kod będzie znacznie schludniejszy i bardziej funkcjonalny. Efektywnie wykorzystując te instrukcje warunkowe, można tworzyć potężne skrypty, które są w stanie obsługiwać złożone zadania i podejmować decyzje.

Czy jesteś nowy w świecie Linuksa? Pozwól nam być Twoim światłem przewodnim w tej ekscytującej podróży! Nasz Serwer VPS z Linuksem to idealny punkt wyjścia dla początkujących, oferujący prostotę bez poświęcania mocy. Dzięki przyjaznym dla użytkownika interfejsom i wsparciu ekspertów wykorzystanie możliwości serwera Linux będzie łatwiejsze niż kiedykolwiek. Niezależnie od tego, czy konfigurujesz stronę internetową, testujesz aplikacje, czy eksplorujesz rozległy świat Linuksa, nasz Linux VPS zapewnia bezpieczne i bezproblemowe środowisko. Z pewnością stawiaj pierwsze kroki w świecie Linuksa – sprawdź nasze opcje Linux VPS już dziś i rozpocznij swoją przygodę z Linuksem!

Hosting VPS pod Linuksem

Zdobądź ekonomiczny lub premium Linux VPS do hostowania swojej witryny internetowej lub zdalnego pulpitu, w najniższej cenie. VPS Działa na platformie Linux KVM w celu zwiększenia wydajności i działa na wydajnym sprzęcie z pamięcią masową SSD NVMe w celu zwiększenia szybkości.

Przeczytaj więcej

Często zadawane pytania

Czy mogę używać operatorów logicznych w instrukcjach Bash if?

Tak, możesz używać operatorów logicznych, takich jak „&” I „||” w instrukcjach Bash if. Na przykład, if [ $var -gt 0 ] && [ $var -lt 10 ]; Następnie … wykona blok kodu if $zmienna jest większa niż 0 i mniejsza niż 10.

Czy mogę użyć wielu warunków w jednej instrukcji if?

Tak, możesz użyć Bash if wielu warunków w jednej instrukcji if, używając operatorów logicznych, takich jak -a (ORAZ) lub -o (LUB), aby je połączyć. Na przykład, if [ $var -gt 0 -a $var -lt 10 ]; Następnie … wykona blok kodu if $zmienna jest większa niż 0 ORAZ mniejsza niż 10.

Czy mogę używać podstawienia poleceń w instrukcjach Bash if?

Tak, możesz użyć podstawienia poleceń w instrukcjach Bash if, dołączając polecenie $() lub cofanie się (). Na przykład, if [ $(whoami) == „root” ]; Następnie … wykona blok kodu, jeśli bieżącym użytkownikiem jest root.

[[ vs [ vs ( vs ((: Jaka jest różnica między tymi operatorami Bash?

Krótko mówiąc, [[ służy do zaawansowanych testów warunkowych. [ służy do podstawowych testów warunkowych. ( służy do grupowania podpowłok i wykonywania poleceń. (( służy do operacji arytmetycznych.

 

Udział

Więcej z bloga

Czytaj dalej.

Najlepsze aplikacje hostowane samodzielnie, które można uruchomić w chmurze Cosmos. Obraz okładki z panelami aplikacji wokół pulpitu nawigacyjnego Cosmos.
Serwery i system operacyjny

Najlepsze aplikacje hostowane samodzielnie, które można uruchomić w chmurze Cosmos: pliki, multimedia, hasła, automatyzacja i wiele więcej!

Być może skonfigurowałeś Cosmos Cloud i teraz chcesz zobaczyć, jakie aplikacje dobrze z nią pasują, a może nawet jeszcze nie zdecydowałeś się na Cosmos i po prostu chcesz zobaczyć, jak dobrze pasuje do Twojej pracy.

Nicka SilveraNicka Silvera 16 minut czytania
Portainer vs Cosmos Cloud do zarządzania aplikacjami Docker z hybrydowym diagramem konfiguracji i neonowymi operacjami a blokami dostępu.
Serwery i system operacyjny

Portainer vs Cosmos Cloud: najlepsze dopasowanie do zarządzania aplikacjami Docker

Jeśli znasz już Dockera i chcesz po prostu czystszego sposobu uruchamiania rosnącego stosu aplikacji, oto krótka odpowiedź na pytanie Portainer vs Cosmos Cloud. Portainer to mocniejszy wybór w przypadku reżyserii

Nicka SilveraNicka Silvera 14 minut czytania
Grafika przedstawiająca trzy hostowane ścieżki w jednym abstrakcyjnym świecie sieci w chmurze.
Serwery i system operacyjny

Cosmos Cloud vs CasaOS vs Umbrel: która platforma samoobsługowa pasuje do Twojej konfiguracji?

Krótka odpowiedź jest taka, że ​​CasaOS jest nadal najłatwiejszym miejscem na rozpoczęcie, Umbrel ma najczystszy, starannie wyselekcjonowany styl, a Cosmos Cloud ma więcej sensu, gdy chcesz mieć ściślejszą kontrolę nad domeną

Nicka SilveraNicka Silvera 11 minut czytania

Gotowy do wdrożenia? Od 2,48 USD/mies.

Niezależna chmura, od 2008. AMD EPYC, NVMe, 40 Gbps. 14-dniowy zwrot pieniędzy.