W tym temacie zrozumiemy, jak używać jeśli oświadczenia w skryptach Bash, aby zakończyć nasze zautomatyzowane zadania.
Bash, jeśli instrukcje są korzystne. Służą do wykonywania zadań warunkowych w sekwencyjnym przebiegu wykonywania instrukcji. Instrukcje if zwykle pozwalają nam podejmować decyzje w naszych skryptach Bash. Pomagają nam podjąć decyzję, czy uruchomić fragment kodu, w oparciu o warunek, który możemy ustawić.
Podstawowe instrukcje if
Podstawowa instrukcja if nakazuje wykonanie tylko określonego zestawu akcji, jeśli określony warunek jest prawdziwy. Jeśli to nieprawda, nie wykonuj tych działań. Jeżeli zestawienie opiera się na formacie:
Składnia
if [ expression ]; then statements fi
Oświadczenie pomiędzy Następnie I Być (Jeśli od tyłu) zostanie wykonane tylko wtedy, gdy wyrażenie (w nawiasach kwadratowych) jest prawdziwe.
metody łańcuchowe w Javie
Notatka:Zwróć uwagę na spacje użyte w pierwszym wierszu i średnik na końcu pierwszego wiersza; oba są obowiązkowe do użycia.Jeśli instrukcja warunkowakończy sięByć.
- Aby użyć wielu warunków z operatorem AND:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Aby użyć wielu warunków z operatorem OR:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- W przypadku wyrażeń złożonych z operatorami AND i OR możemy zastosować następującą składnię:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Poniżej znajduje się kilka przykładów demonstrujących użycie instrukcji if:
Przykład 1
W tym przykładzie wprowadź dowolną liczbę przez użytkownika i sprawdź, czy wartość jest większa niż 125.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Wyjście
Jeśli wprowadzimy liczbę 159, wynik będzie wyglądał następująco:
pawandeep rajan
Przykład 2
W tym przykładzie demonstrujemy użycie jeśli stwierdzenie z prostym scenariuszem porównywania dwóch ciągów znaków:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Wyjście
Przykład 3
W tym przykładzie pokazujemy, jak porównywać liczby za pomocą instrukcji if:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Wyjście
Przykład 4
W tym przykładzie zdefiniujemy, jak używać operatora AND, aby uwzględnić wiele warunków w wyrażeniu if:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Wyjście
Przykład 5
W tym przykładzie zdefiniujemy, jak używać operatora OR do uwzględnienia wielu warunków w wyrażeniu if:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Wyjście
Przykład 6
W tym przykładzie zdefiniujemy, jak używać AND i OR, aby uwzględnić wiele warunków w wyrażeniu if:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Wyjście
nie jest równy mysql
Opcje instrukcji If w skryptach Bash
Instrukcja if zawiera wiele opcji wykonania określonego zadania. Opcji tych można używać do operacji na plikach, operacji na ciągach znaków itp. Poniżej przedstawiono niektóre najczęściej używane opcje:
Opcje (operatorzy) | Opis |
---|---|
! WYRAŻENIE | Aby sprawdzić, czy WYRAŻENIE jest fałszywe. |
-n ŁAŃCUCH | Aby sprawdzić, czy długość STRING jest większa od zera. |
-z ŁAŃCUCH | Aby sprawdzić, czy długość STRING wynosi zero (tj. jest pusta) |
ŁAŃCUCH1 == ŁAŃCUCH2 | Aby sprawdzić, czy STRING1 jest równy STRING2. |
ŁAŃCUCH1!= ŁAŃCUCH2 | Aby sprawdzić, czy STRING1 nie jest równy STRING2. |
INTEGER1 -eq INTEGER2 | Aby sprawdzić, czy INTEGER1 jest liczbowo równa INTEGER2. |
INTEGER1 -gt INTEGER2 | Aby sprawdzić, czy INTEGER1 jest liczbowo większa niż INTEGER2. |
INTEGER1 -lt INTEGER2 | Aby sprawdzić, czy INTEGER1 jest liczbowo mniejsza niż INTEGER2. |
-d PLIK | Aby sprawdzić, czy PLIK istnieje i jest to katalog. |
-e PLIK | Aby sprawdzić, czy PLIK istnieje. |
-r PLIK | Aby sprawdzić, czy PLIK istnieje i czy przyznano uprawnienia do odczytu. |
-s PLIK | Aby sprawdzić, czy PLIK istnieje i jego rozmiar jest większy od zera (co oznacza, że nie jest pusty). |
-w PLIK | Aby sprawdzić, czy PLIK istnieje i przyznano uprawnienia do zapisu. |
x PLIK | Aby sprawdzić, czy PLIK istnieje i udzielono pozwolenia na wykonanie. |
Zagnieżdżone Jeśli
Możesz zastosować dowolną liczbę instrukcji if w skrypcie bash. Możliwe jest również użycie instrukcji if wewnątrz innej instrukcji if. Nazywa się to zagnieżdżoną instrukcją if.
Przykład
W tym przykładzie sprawdzimy, czy dana liczba jest większa niż 50 i czy jest to liczba parzysta, używając zagnieżdżonego wyrażenia if.
struktura danych
#!/bin/bash #Nested if statement if [ -gt 50 ] then echo 'Number is greater than 50.' if (( % 2 == 0 )) then echo 'and it is an even number.' fi fi
Wyjście
Jeśli wprowadzimy wartość argumentu jako 100, wynik będzie wyglądał następująco:
Wniosek
W tym temacie omówiliśmy, w jaki sposób możemy wykorzystać rozgałęzienia warunkowe w sekwencyjnym przebiegu wykonywania instrukcji za pomocą instrukcji bash if.