Introduction to Bash Scripting 06 - A Simple "If" Statement
Spisu treści:
- Instrukcja
if - Instrukcja
if..else - Instrukcja
if..elif..else - Zagnieżdżone,
ifinstrukcje - Wiele warunków
- Operatorzy testowi
- Wniosek
Podejmowanie decyzji jest jedną z najbardziej podstawowych koncepcji programowania komputerowego. Jak w każdym innym języku programowania,
if
,
if..else
,
if..elif..else
i zagnieżdżone,
if
instrukcje Bash mogą być użyte do wykonania kodu w oparciu o określony warunek.
W tym samouczku przeprowadzimy Cię przez podstawy instrukcji Bash
if
i pokażemy, jak ich używać w skryptach powłoki.
Instrukcja
if
Bash,
if
warunkowe mogą mieć różne formy. Najbardziej podstawowa instrukcja
if
ma następującą postać:
if TEST-COMMAND then STATEMENTS fi
Instrukcja
if
zaczyna się od słowa kluczowego
if
po którym następuje wyrażenie warunkowe i słowo kluczowe
then
. Instrukcja kończy się słowem kluczowym
fi
.
Jeśli
TEST-COMMAND
wartość
True
,
STATEMENTS
są wykonywane. Jeśli
TEST-COMMAND
zwróci
False
, nic się nie stanie,
STATEMENTS
zostaną zignorowane.
Ogólnie dobrą praktyką jest zawsze wcięcie kodu i oddzielenie bloków kodu pustymi wierszami. Większość osób decyduje się na wcięcie 4-spacji lub 2 spacji. Wcięcia i puste wiersze sprawiają, że kod jest bardziej czytelny i uporządkowany.
Spójrzmy na następujący przykładowy skrypt, który sprawdza, czy dana liczba jest większa niż 10.
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi
Zapisz kod w pliku i uruchom go z wiersza poleceń:
bash test.sh
Skrypt wyświetli monit o wprowadzenie liczby. Jeśli na przykład wpiszesz 15, polecenie
test
zostanie ocenione jako
true
ponieważ 15 jest większe niż 10, a polecenie
echo
w klauzuli
then
zostanie wykonane.
The variable is greater than 10.
Instrukcja
if..else
Instrukcja Bash
if..else
ma następującą postać:
if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi
Jeśli
TEST-COMMAND
wartość
True
,
STATEMENTS1
zostanie wykonany. W przeciwnym razie, jeśli
TEST-COMMAND
zwróci
False
,
STATEMENTS2
zostanie wykonane. W instrukcji może znajdować się tylko jedna klauzula.
Dodajmy klauzulę
else
do poprzedniego przykładowego skryptu:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi
Instrukcja
if..elif..else
Instrukcja Bash
if..elif..else
przyjmuje następującą postać:
if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi
Jeśli
TEST-COMMAND1
wartość
True
,
STATEMENTS1
zostanie wykonane. Jeśli
TEST-COMMAND2
wartość
True
,
STATEMENTS2
zostanie wykonane. Jeśli żadne z poleceń testowych nie ma wartości
True
,
STATEMENTS2
jest wykonywany.
W instrukcji może
elif
jedna lub więcej klauzul
elif
. Klauzula
else
jest opcjonalna.
Warunki są oceniane kolejno. Gdy warunek zwraca wartość
True
pozostałe warunki nie są wykonywane, a sterowanie programem przesuwa się na koniec instrukcji
if
.
Dodajmy klauzulę
elif
do poprzedniego skryptu:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi
Zagnieżdżone,
if
instrukcje
Bash umożliwia zagnieżdżanie instrukcji
if
instrukcjach
if
. Możesz umieścić wiele instrukcji
if
w innej instrukcji
if
.
Poniższy skrypt poprosi cię o wprowadzenie trzech liczb i wydrukuje największą liczbę spośród tych trzech liczb.
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi
Oto jak będzie wyglądać wyjście:
Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number.
Zamiast używać zagnieżdżonych instrukcji
if
, zwykle bardziej efektywne jest użycie instrukcji case.
Wiele warunków
Logiczne operatory
OR
i
AND
pozwalają na użycie wielu warunków w instrukcjach
if
.
Oto kolejna wersja skryptu, aby wydrukować największą liczbę spośród trzech liczb. W tej wersji zamiast zagnieżdżonych instrukcji
if
użyjemy logicznego operatora
AND
(
&&
).
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi
Operatorzy testowi
W Bash polecenie
test
przyjmuje jedną z następujących form składni:
test EXPRESSION]
Aby zanegować wyrażenie testowe, użyj logicznego operatora
NOT
(
!
). Podczas porównywania ciągów zawsze używaj pojedynczych lub podwójnych cudzysłowów, aby uniknąć problemów z dzieleniem wyrazów lub globowaniem.
Poniżej znajdują się niektóre z najczęściej używanych operatorów:
-
-nVAR- Prawda, jeśli długość VAR jest większa od zera.-zVAR- Prawda, jeśli VAR jest pusty.STRING1 = STRING2- Prawda [STRING1 i STRING2 są równe.STRING1 != STRING2- True STRING1 i STRING2 nie są sobie równe.INTEGER1 -eq INTEGER2- True INTEGER1 i INTEGER2 są równe.INTEGER1 -gt INTEGER2- Prawda INTEGER1 jest większa niż INTEGER2.INTEGER1 -lt INTEGER2- Prawda INTEGER1 jest mniejsza niż INTEGER2.INTEGER1 -ge INTEGER2- Prawda INTEGER1 jest równa lub większa niż INTEGER2.INTEGER1 -le INTEGER2- Prawda INTEGER1 jest równa lub mniejsza niż INTEGER2.-hFILE- Prawda, jeśli PLIK istnieje i jest dowiązaniem symbolicznym.-rFILE- Prawda, jeśli PLIK istnieje i jest czytelny.-wFILE- Prawda, jeśli PLIK istnieje i jest zapisywalny.-xFILE- Prawda, jeśli PLIK istnieje i jest wykonywalny.-dFILE- Prawda, jeśli PLIK istnieje i jest katalogiem.-eFILE- Prawda, jeśli PLIK istnieje i jest plikiem, niezależnie od typu (węzeł, katalog, gniazdo itp.).-fFILE- Prawda, jeśli PLIK istnieje i jest zwykłym plikiem (nie katalogiem ani urządzeniem).
Wniosek
Instrukcje
if
,
if..else
i
if..elif..else
pozwalają kontrolować przepływ wykonywania skryptu Bash poprzez ocenę danych warunków.
Jak zdalnie rozwiązywać problemy z komputerem Someone Else?
Odpowiadam na pytanie zadane przez BobJam, pierwotnie opublikowane na Forum Answer Line, na zdalne kontrolowanie jego siostry Komputer PC, aby pomóc jej w problemach technicznych.
Tworzenie aplikacji dla systemu Windows 7.5 Mango, część 4: Instrukcja if
W tym rozdziale dowiesz się, jak używać wyrażenia "jeśli" i jakie są jego typy
Pobierz Windows PowerShell 3.0 Instrukcja krok po kroku od firmy Microsoft
Pobierz te instrukcje Windows PowerShell 3.0 krok po kroku od firmy Microsoft. W tym samouczku pokażemy, jak korzystać z PowerShell.







