Skip to main content

Jak napisać instrukcję Bash IF (warunki)

Bash - część #2 - pętle / bash scripting - part #2 - loops (Czerwiec 2026)

Bash - część #2 - pętle / bash scripting - part #2 - loops (Czerwiec 2026)
Anonim

W przypadku instrukcji if, która jest typem instrukcji warunkowej, można wykonywać różne działania w zależności od określonych warunków. Skutecznie daje systemowi możliwość podejmowania decyzji.

Przykład najprostszej formy instrukcji if:

count = 5, jeśli $ count == 5, a następnie echo "$ count" fi

W tym przykładzie zmienna "count" jest używana do określenia warunku, który jest używany jako część instrukcji if. Przed wykonaniem instrukcji if zmienna "count" ma wartość "5". Instrukcja if sprawdza następnie, czy wartość "count" wynosi "5". W takim przypadku wykonywane jest oświadczenie między słowami kluczowymi "wtedy" i "fi", w przeciwnym razie wykonywane są wszystkie instrukcje następujące po instrukcji if. Słowo kluczowe "fi" to "jeśli" zostało napisane wstecz. Język skryptowy bash używa tej konwencji do oznaczania końca złożonego wyrażenia, takiego instrukcji if lub instrukcji case.

Instrukcja "echo" wypisuje swój argument, w tym przypadku wartość zmiennej "count", do okna terminala. Wcięcie kodu między słowami kluczowymi instrukcji if poprawia czytelność, ale nie jest konieczne.

Jeśli masz sytuację, w której fragment kodu powinien zostać wykonany, tylko jeśli warunek nie jest prawdziwy, możesz użyć słowa kluczowego "else" w instrukcji if, jak w tym przykładzie:

count = 5 jeśli $ count == 5 to echo "$ count" else echo "count is not 5" fi

Jeśli warunek "$ count == 5" jest prawdziwy, system wypisze wartość zmiennej "count", w przeciwnym razie wydrukuje ciąg "count is not 5".

Jeśli chcesz rozróżnić wiele warunków, możesz użyć słowa kluczowego "elif", które pochodzi od "else if", jak w tym przykładzie:

jeśli $ count == 5 to echo "count is five" elif $ count ==6, następnie echo "count is six" else echo "none of the above" fi

Jeśli "count" wynosi "5", system wypisuje "count is five". Jeśli "count" nie jest "5", ale "6", system wypisze "count is six". Jeśli nie jest ani "5", ani "6", system wypisze "żaden z powyższych".

Jak można się domyślić, możesz mieć dowolną liczbę klauzul "elif". Przykładem z wieloma warunkami "elif" będzie:

jeśli $ count == 5 to echo "count is five" elif $ count == 6, a następnie echo "count is six" elif $ count == 7, a następnie echo "count is seven" elif $ count = = 8 następnie echo "count is eight" elif $ count == 9 następnie echo "count is nine" else echo "none of the above" fi

Bardziej kompaktowym sposobem pisania takich instrukcji z wieloma warunkami jest metoda case. Działa on podobnie do instrukcji if z wieloma klauzulami "elif", ale jest bardziej zwięzły. Na przykład powyższy fragment kodu można ponownie napisać za pomocą instrukcji "case" w następujący sposób:

case "$ count" w 5) echo "count is five" ;; 6) echo "count is six" ;; 7) echo "count is seven" ;; 8) echo "count is eight" ;; 9) echo "count is nine" ;; *) echo "żaden z powyższych" esac

Instrukcje if są często używane w pętlach for-loop lub while-loops, jak w tym przykładzie:

count = 1 done = 0 while $ count -le 9 sleep 1 ((count ++)) if $ count == 5 then continue fi echo "$ count" done echo Zakończono

Możesz także zagnieżdżać instrukcje if. Najprostszy zagnieżdżony komunikat if ma postać: if … then … else … if … then … fi … fi. Jednak instrukcja if może zagnieżdżać się z dowolną złożonością.

Zobacz także jak przekazywać argumenty do skryptu bash, który pokazuje, jak używać warunków do przetwarzania parametrów przekazywanych z wiersza poleceń.

Powłoka bash udostępnia inne konstrukcje programistyczne, takie jak pętle for, pętle while i wyrażenia arytmetyczne.