Spesifikke eksempler vist i denne artikkelen inkluderer:
Generell syntaks av bash hvis elif andre
Nedenfor er den generelle syntaksen til HVIS Elif og ELLERS i bash:
Hvis tilstand-til-test; deretter
Kode-til-ut-utøvelse-1
elif nest-condition-to-test; deretter
Kode-til-ut-utøvelse-2
elif nest-condition-to-test; deretter
Kode-til-ut-utøvelse-2
ellers
Kode-til-ut-utøvelse-2
fi
Merk: I ovennevnte generelle syntaks som du kan inkludere null, en eller flere Elif forhold i kodeblokken og ELLERS Tilstanden er valgfri.
Konstruksjon av de faktiske forholdene har mange alternativer fordi syntaksen til bash har så mange forskjellige funksjoner og alternativer, men en veldig grunnleggende mal for bashskriptene dine vil være å bruke [[ Dobbelt Brack -syntaks som vist i det generelle syntakseksemplet og spesifikke eksempler nedenfor.
hvis [[tilstand-til-test]]; deretter
Kode-til-ut-utøvelse-1
elif [[nest-condition-to-test]]; deretter
Kode-til-ut-utøvelse-2
elif [[nest-condition-to-test]]; deretter
Kode-til-ut-utøvelse-2
ellers
Kode-til-ut-utøvelse-2
fi
Merk også: at avhengig av kodeformateringsestetikken din kan du like på samme linje med forholdene, eller du kan velge å legge den i neste linje som vist nedenfor:
if [[tilstand-til-test]]
deretter
Kode-til-ut-utøvelse-1
elif [[nest-condition-to-test]]
deretter
Kode-til-ut-utøvelse-2
elif [[nest-condition-to-test]]
deretter
Kode-til-ut-utøvelse-2
ellers
Kode-til-ut-utøvelse-2
fi
La oss nå vise spesifikke eksempler på de grunnleggende variasjonene til HVIS Elif og ELLERS forhold i arbeidseksempler nedenfor.
Eksempel 1: Hvis uttalelse i bash om likestilling
#!/bin/bash
Les -P "Skriv inn et matchord:" user_input
if [[$ user_input == "hallo"]]; deretter
ekko "hei til deg også"
fi
I dette eksemplet over bruker vi grunnleggende HVIS Tilstand med en enkelt test av strengekvalitet og skriv deretter ut noen utgang i tilfelle tilstanden er sann basert på inndata fra brukeren. Merk, du kan plassere DERETTER uttalelse på neste linje hvis du foretrekker den stilen. Se eksemplet utdata nedenfor:
linuxhint@: ~ $ bash t1.sh
Skriv inn et matchord: Hei
Hei til deg også
linuxhint@: ~ $ bash t1.sh
Skriv inn et matchord: Bye
linuxhint@: ~ $
Eksempel 2: Hvis uttalelse i bash om likestilling
#!/bin/bash
Les -P "Skriv inn et nummer:" user_input
hvis [[$ user_input -eq 7]]; deretter
Echo "7 er et heldig nummer"
fi
I dette eksemplet over, gjør vi igjen en enkel HVIS Tilstand, men i dette tilfellet demonstrerer vi hvordan vi kan gjøre en testsammenligning på numeriske verdier. Du kan se utdataene nedenfor med både matchende og ikke -samsvarende forhold:
linuxhint@: ~ $ bash t2.sh
Skriv inn et tall: 7
7 er et heldig nummer
linuxhint@: ~ $ bash t2.sh
Skriv inn et tall: 8
linuxhint@: ~ $
Eksempel 3: Hvis uttalelse i bash på mindre enn et tall
I tillegg til -Eq For likhet kan du også prøve -Lt -LE -GT -GE Testbetingelser for mindre enn, mindre enn eller like, større enn eller større enn henholdsvis eller lik. Nedenfor er et lignende eksempel med mindre enn operatør -Lt:
#!/bin/bash
Les -P "Skriv inn et nummer:" user_input
hvis [[$ user_input -lt 100]]; deretter
ekko "Oppføringen din er mindre enn hundre"
fi
Utgang for dette skriptet vil kunne teste om inngangen er mindre enn 100 og kjører spesifikk kode på den tilstanden:
linuxhint@: ~ $ bash t3.sh
Skriv inn et tall: 99
Oppføringen din er mindre enn hundre
linuxhint@: ~ $ bash t3.sh
Skriv inn et tall: 101
linuxhint@: ~ $
Eksempel 4: Hvis uttalelse i bash med logisk og operatør
Dette eksemplet vil vise hvordan du kan kombinere flere forhold med en logisk OG betingelse. Du kan også bruke logisk ELLER forhold i din HVIS uttalelse konstruerer. Logisk OG I bash kode er skrevet med doble ampersand &&. Nedenfor er et eksempel på logisk OG i en bash HVIS betingelse:
#!/bin/bash
Les -P "Skriv inn et nummer:" user_input
if [[$ user_input -GT 9 && $ user_input -lt 100]]; deretter
ekko "Oppføringen din er to sifre"
fi
Vi vil teste dette med forskjellige utganger for å bevise at bare hvis både den første og den andre tilstanden er sant, vil utdataene skrives ut:
linuxhint@: ~ $ bash t4.sh
Skriv inn et tall: 22
Oppføringen din er to sifre
linuxhint@: ~ $ bash t4.sh
Skriv inn et tall: 8
linuxhint@: ~ $ bash t4.sh
Skriv inn et tall: 100
linuxhint@: ~ $ bash t4.sh
Skriv inn et tall: 99
Oppføringen din er to sifre
Eksempel 5: Hvis uttalelse i bash med logisk eller operatør
Logisk ELLER I bash -skript er det skrevet med doble vertikale stenger ||. La oss prøve det forrige eksemplet igjen med en liten variasjon for å teste ut et eksempel på den logiske eller operatøren:
#!/bin/bash
Les -P "Skriv inn et nummer:" user_input
if [[$ user_input -lt 10 || $ User_input -GE 100]]; deretter
ekko "Oppføringen din er ikke to sifre"
fi
I dette eksemplet det logiske ELLER Operatøren kombinerer to forhold, og bare en av dem eller begge kan være sant for at tilstanden generelt skal være sann og koden for å utføre. Vi demonstrerer også -ge operatør for større eller lik numerisk sammenligning i eksemplet ovenfor. Skriptet fungerer som forventet i utdataene nedenfor:
linuxhint@: ~ $ bash t5.sh
Skriv inn et tall: 3
Oppføringen din er ikke to sifre
linuxhint@: ~ $ bash t5.sh
Skriv inn et tall: 10
linuxhint@: ~ $ bash t5.sh
Skriv inn et tall: 99
linuxhint@: ~ $ bash t5.sh
Skriv inn et tall: 100
Oppføringen din er ikke to sifre
linuxhint@: ~ $ bash t5.sh
Skriv inn et tall: 101
Oppføringen din er ikke to sifre
Eksempel 6: ELIF -tilstand i bash
Vi vil nå gi et eksempel for flere hvis forhold i kodeblokken med Elif. Du kan ha null, en eller multipe Elif forhold i en kodeblokk. For dette eksemplet vil vi gi to Elif forhold som demonstrasjon, men du kan bruke et hvilket som helst antall Elif blokker i praksis.
#!/bin/bash
Les -P "Skriv inn et nummer:" user_input
if [[$ user_input -lt 0]]; deretter
ekko "Ikke en gyldig positivt tallinngang"
elif [[$ user_input -GT 0 && $ user_input -lt 10]]; deretter
ekko "gyldig 1 siffernummer lagt inn"
elif [[$ user_input -gt 9 && $ user_input -lt 100]]; deretter
ekko "gyldig 2 -sifret nummer lagt inn"
fi
Vi vil teste denne koden med en rekke tall for å demonstrere hvilken hvis eller Elif Tilstand utløses:
linuxhint@: ~ $ bash t6.sh
Skriv inn et tall: -1
Ikke en gyldig positivt tallinngang
linuxhint@: ~ $ bash t6.sh
Skriv inn et tall: 1
Gyldig 1 siffernummer angitt
linuxhint@: ~ $ bash t6.sh
Skriv inn et tall: 14
Gyldig 2 -sifret nummer angitt
linuxhint@: ~ $ bash t6.sh
Skriv inn et tall: 101
linuxhint@: ~ $
Eksempel 7: Hvis annet uttalelse i bash -skripting
Vi vil nå demonstrere ELLERS betingelse. De ELLERS tilstand brukes i tilfelle der HVIS tilstand eller alle Elif forhold eksisterer ikke enn ELLERS tilstand vil bli brukt og koden i ELLERS Tilstand vil bli utført. La oss legge til et eksempel på ELLERS tilstand til forrige eksempel, men for å være tydelig Elif er ikke pålagt å utnytte ELLERS betingelse. De ELLERS Tilstand kan brukes med en HVIS tilstand og nei Elif betingelse.
#!/bin/bash
Les -P "Skriv inn et nummer:" user_input
if [[$ user_input -lt 0]]; deretter
ekko "Ikke en gyldig positivt tallinngang"
elif [[$ user_input -GT 0 && $ user_input -lt 10]]; deretter
ekko "gyldig 1 siffernummer lagt inn"
elif [[$ user_input -gt 9 && $ user_input -lt 100]]; deretter
ekko "gyldig 2 -sifret nummer lagt inn"
ellers
ekko "Et gyldig 2 -sifret nummer ble ikke lagt inn"
fi
La oss teste eksempelkoden med en enkel testkasse som skal falle inn i ELLERS betingelse:
linuxhint@: ~ $ bash t7.sh
Skriv inn et tall: 199
Et gyldig 2 -sifret nummer ble ikke lagt inn
linuxhint@: ~ $
KONKLUSJON
Vi har sett hvordan vi skal bruke HVIS, Elif og ELLERS Betingelser for å danne betinget utførelse i mange kombinasjoner i bash -skript og bash -programmer. For neste trinn kan du studere testforhold og variasjoner og varianter som er tilgjengelige for å teste en tilstand. Du kan også betrakte Bash Case -uttalelsen som et alternativ for betinget logikk i bash -skript. Endelig er GNU Bash Reference Manual en god kilde til sannhet når du leter etter eksakte syntaksdetaljer.