Należy zauważyć, że ponieważ ZSH jest zbudowany na bash, składnia i funkcjonalność są podobne dla skryptów zbudowanych dla bash lub zszu.
If oświadczenie
Najbardziej podstawowym sposobem wdrożenia logiki warunkowej do skryptu powłoki jest użycie instrukcji IF. Ogólna składnia dla instrukcji IF w ZSH jest poniżej:
#!/usr/bin/zsh
Jeśli stan
Następnie
// Uruchom polecenia
fi
Aby wdrożyć instrukcję IF, zaczynamy od wywołania słowa kluczowego if. Następnie przekazujemy wyrażenie warunkowe, aby ocenić. Wyrażenie warunkowe musi zwrócić wartość logiczną.
Po tym, jak wyrażenie warunkowe dochodzi do słowa kluczowego i bloku FI, wewnątrz tych bloków, przekazujemy polecenia, aby uruchomić, jeśli wyrażenie warunkowe oceni True.
Jeśli przekazane wyrażenie warunkowe oceni do logicznego fałszu, blok poleceń wewnątrz bloku Fi zostaje ignorowany, a wyjście warunkowe.
Chociaż nie jest to wymagane, zaleca się wcięcie bloków kodu w celu czytelności i konserwacji.
Rozważ przykład, jeśli stwierdzenie poniżej:
dotknij warunki.SH && vim warunki warunkowe.cii
#!/usr/bin/zsh
Jeśli [[100 -GT 50]]
Następnie
Echo „100 jest większe niż 50”
fi
Zapisz plik i zamknij.
Następnie spraw, aby plik wykonywa się za pomocą polecenia CHMOD jako:
CHMOD +X WARUNKACJA.cii
Na koniec uruchom skrypt jako:
./Warunkami.cii
Skrypt uruchomi blok if i sprawdzi, czy 100 jest większe niż 50. Jeśli prawda, uruchomi polecenie Echo i wyjdzie.
Poniżej znajduje się przykład wyjścia:
$ ./warunkowy.cii
100 jest większe niż 50
Jeśli… inaczej stwierdzenie
Bardziej rozwinięta wersja instrukcji IF to oświadczenie IF…. Działa jak instrukcja IF, ale dodaje uchwyt, jeśli wyrażenie warunkowe ocenia się do fałszywych.
Poniżej znajduje się ogólna składnia dla oświadczenia IF… Else:
#!/usr/bin/zsh
Jeśli warunkowo
Następnie
// polecenia do uruchomienia, jeśli jest prawdziwe
w przeciwnym razie
// polecenia do uruchomienia, jeśli fałsz
fi
Jak widać z powyższego przykładu, jeśli wyrażenie warunkowe ocenia się na true, blok między ówczesnym a innymi instrukcjami wykonuje. Jeśli jednak FALSE, ten blok jest wykonywany.
Rozważ przykład pokazany poniżej:
#!/usr/bin/zsh
echo -n „Wprowadź numer:”
Przeczytaj num
Jeśli [[$ num -GT 50]]
Następnie
Echo „$ NUM jest większy niż 50”
w przeciwnym razie
Echo „$ NUM nie jest większe niż 50”
fi
W przykładowym skrypcie prosimy użytkownika o wprowadzenie numeru. Jeśli liczba jest większa niż 50, echem, że liczba jest większa niż 50. Jeśli Fałsz, echem liczba nie jest większa niż 50.
Poniżej znajduje się przykład wyjścia:
$ ./warunkowy.cii
Wprowadź numer: 10
10 nie jest większe niż 50
$ ./warunkowy.cii
Wprowadź numer: 80
80 jest większe niż 50
Jeśli… elif… inaczej stwierdzenia
W niektórych przypadkach możesz chcieć przetestować wiele warunków w jednym bloku. Aby zaimplementować taką logikę, możemy użyć instrukcji IF… elif… else.
W instrukcji if… elif… else, dodajemy wiele wyrażeń warunkowych, w których tylko jeden warunek ocenia do true. Jeśli pierwszy warunek jest prawdziwy, wykonaj jego blok; Jeśli nie, sprawdź drugie i kontynuuj, aż wszystkie warunki zostaną sprawdzone.
Składnia dla bloku IF… Elif to:
#!/usr/bin/zsh
Jeśli stan 1
Następnie
// block1
Warunek ELIF2
Następnie
// block2
Stan elif
Następnie
// blokn
w przeciwnym razie
// Jeśli wszystkie warunki ocenią na fałszywe
fi
Warunki są oceniane sekwencyjnie. Jeśli ktoś oceni True, jego blok kodu jest wykonywany. Jeśli jednak żaden z tych warunków nie jest prawdziwy, blok z nich jest wykonywany.
Ten blok jest opcjonalny, ale zaleca się poradzić sobie z sytuacją, w której żaden stan nie jest prawdziwy.
Oto przykład skryptu:
Jeśli [[$ num -eq 10]]
Następnie
echo "liczba = $ num"
Elif [[$ num -eq 20]]
Następnie
echo "liczba = $ num"
elif [[$ num -eq 30]]
Następnie
echo "liczba = $ num"
w przeciwnym razie
Echo „Liczba nie jest ani 10, 20 ani 30”
echo "liczba = $ num"
fi
Powyższy skrypt implementuje blok Elif, jeśli wprowadzona liczba wynosi 10, 20 lub 30. Jeśli nie, eleganckie bloki do obsługi stanu, jak pokazano w poniższym wykonaniu:
./warunkowy.cii
Wprowadź numer: 10
Liczba = 10
Wprowadź numer: 20
Liczba = 20
Wprowadź numer: 30
Liczba = 30
Wprowadź numer: 51
Liczba nie jest ani 10, 20, ani 30
Liczba = 51
Możesz mieć tyle stwierdzeń Elif, ile uważasz. Jeśli jednak takie scenariusze wystąpią, rozważ wdrożenie bloku sprawy.
Operatorzy warunkowe
W powyższych przykładach zaimplementowaliśmy operatory warunkowe, takie jak -eq (równe) i -GT (większy niż). ZSH obsługuje innych operatorów warunkowych, takich jak:
Powyższe są przykładami wyrażeń warunkowych, których możesz użyć w swoich skryptach ZSH. Sprawdź dokumentację, aby dowiedzieć się więcej.
Wniosek
Ten samouczek pokazał, jak zaimplementować logikę warunkową w naszych skryptach ZSH za pomocą instrukcji IF. Zapraszam do sprawdzenia dokumentacji skryptowej ZSH, aby dowiedzieć się więcej.
Dziękuję za przeczytanie!