Det er bra å merke seg at siden Zsh er bygget på toppen av bash, er syntaks og funksjonalitet like for skript bygget for bash eller zsh -skall.
Hvis uttalelse
Den mest grunnleggende måten å implementere betinget logikk på et skallskript er ved å bruke en IF -uttalelse. Den generelle syntaks for en IF -uttalelse i ZSH er nedenfor:
#!/usr/bin/zsh
Hvis tilstand
deretter
// Kjør kommandoer
fi
For å implementere en IF -uttalelse, starter vi med å ringe IF -nøkkelordet. Vi passerer deretter det betingede uttrykket for å evaluere. Det betingede uttrykket må returnere en boolsk verdi.
Etter at det betingede uttrykket kommer til daværende nøkkelord og FI -blokken, inne i disse blokkene, passerer vi kommandoene for å kjøre hvis det betingede uttrykket evaluerer til True.
Hvis det betingede uttrykket som er gitt, evalueres til en boolsk falsk, blir kommandoblokken inne i den daværende FI -blokken ignorert, og betingede utganger.
Selv om det ikke er nødvendig, anbefales det å innrykk kodeblokkene dine for lesbarhet og vedlikehold.
Tenk på eksemplet hvis uttalelsen nedenfor:
berøring av betingelser.sh && vim conditionals.sh
#!/usr/bin/zsh
if [[100 -GT 50]]
deretter
ekko "100 er større enn 50"
fi
Lagre filen og lukk.
Deretter gjør filen kjørbar ved å bruke CHMOD -kommandoen som:
CHMOD +X Conditionals.sh
Til slutt, kjør manuset som:
./betingelser.sh
Skriptet kjører IF -blokken og sjekk om 100 er større enn 50. Hvis det er sant, vil det kjøre Echo -kommandoen og avslutte.
Nedenfor er et eksempelutgang:
$ ./betinget.sh
100 er større enn 50
Hvis ... ellers uttalelse
En mer utviklet versjon av IF -uttalelsen er IF… ellers uttalelse. Det fungerer som IF -uttalelsen, men legger til et håndtak hvis det betingede uttrykket evaluerer til usant.
Nedenfor er den generelle syntaksen for IF… ellers uttalelse:
#!/usr/bin/zsh
Hvis betinget
deretter
// kommandoer for å kjøre hvis det er sant
ellers
// kommandoer for å kjøre hvis de er falske
fi
Som det fremgår av eksemplet over, utføres hvis det betingede uttrykket evaluerer til True, utføres blokken mellom da og ellers uttalelser. Imidlertid, hvis den er usant, utføres ellers andre blokken.
Tenk på eksemplet som er vist nedenfor:
#!/usr/bin/zsh
ekko -n "Skriv inn et tall:"
Les Num
if [[$ num -gt 50]]
deretter
ekko "$ num er større enn 50"
ellers
ekko "$ num er ikke større enn 50"
fi
I eksempelskriptet ber vi brukeren om å oppgi et nummer. Hvis tallet er større enn 50, gjenspeiler vi at tallet er større enn 50. Hvis det er usant, gjenspeiler vi at tallet ikke er større enn 50.
Nedenfor er et eksempelutgang:
$ ./betinget.sh
Skriv inn et tall: 10
10 er ikke større enn 50
$ ./betinget.sh
Skriv inn et tall: 80
80 er større enn 50
Hvis ... elif ... ellers uttalelser
I noen tilfeller kan det være lurt å teste flere forhold i en blokk. For å implementere en slik logikk, kan vi bruke IF… elif… ellers uttalelse.
I en if… elif… ellers uttalelse, legger vi til flere betingede uttrykk der bare en tilstand evaluerer til sann. Hvis den første tilstanden er sann, utfør sin blokkering; Hvis ikke, sjekk det andre og fortsett til alle forholdene er sjekket.
Syntaksen for IF… Elif -blokken er:
#!/usr/bin/zsh
Hvis tilstand1
deretter
// Block1
ELIF -tilstand2
deretter
// block2
elif conditionn
deretter
// Blockn
ellers
// Hvis alle forhold evalueres til usant
fi
Forholdene blir evaluert sekvensielt. Hvis man evaluerer til sann, utføres kodeblokken. Imidlertid, hvis ingen av forholdene er sanne, utføres den andre blokken.
Annets blokkering er valgfri, men anbefales å håndtere en situasjon der ingen tilstand er sann.
Her er et eksempelskript:
if [[$ num -eq 10]]
deretter
ekko "nummer = $ num"
elif [[$ num -eq 20]]
deretter
ekko "nummer = $ num"
elif [[$ num -eq 30]]
deretter
ekko "nummer = $ num"
ellers
ekko "nummer er verken 10, 20 eller 30"
ekko "nummer = $ num"
fi
Ovennevnte skript implementerer en ELIF -blokk hvis antallet som er angitt er enten 10, 20 eller 30. Hvis ikke, de andre blokkeringene for å håndtere tilstanden som vist i utførelsen nedenfor:
./betinget.sh
Skriv inn et tall: 10
Nummer = 10
Skriv inn et tall: 20
Nummer = 20
Skriv inn et tall: 30
Nummer = 30
Skriv inn et tall: 51
Antallet er verken 10, 20 eller 30
Nummer = 51
Du kan ha så mange elif -uttalelser som du synes passer. Imidlertid, hvis slike scenarier oppstår, kan du vurdere å implementere en saksblokk.
Betingede operatører
I eksemplene ovenfor implementerte vi betingede operatører som -eq (lik) og -GT (større enn). ZSH støtter andre betingede operatører som:
Ovennevnte er eksempler på betingede uttrykk du kan bruke i ZSH -skriptene dine. Sjekk ut dokumentasjonen for å lære mer.
Konklusjon
Denne opplæringen har vist deg hvordan du implementerer betinget logikk i ZSH -skriptene våre ved å bruke IF -utsagn. Sjekk gjerne ut Zsh Scripting -dokumentasjonen for å lære mer.
Takk for at du leser!