Bash er en tolk for kommandospråk. Det er en standard kommandotolk på de fleste GNU/ Linux-systemer og er allment tilgjengelig på forskjellige operativsystemer. Navnet er en forkortelse for Bourne-Again SHell . Skripting gjør det mulig å utføre instruksjoner som ellers ville blitt utført én etter én interaktivt.
I denne artikkelen vil vi diskutere if-utsagn i bash-skripting.
Bash If-uttalelse
Den grunnleggende syntaksen til en 'if'-setning i Bash:
#!/bin/bash if [ condition ]; then # code to be executed if the condition is true fi>
Forklaring:
-
if [ condition ]; then>: Denne linjen starter if-setningen, hvorcondition>er uttrykket som vurderes. Hvis betingelsen er sann, vil koden inne ithen>blokken er utført. -
# code to be executed if the condition is true>: Dette er kodeblokken som utføres hvis betingelsen spesifisert i if-setningen er sann. -
fi>: Dette markerer slutten på if-setningen.
Bash-skript for å finne ut om et tall er partall
Følgende er et eksempel manus som vil be deg om å legge inn et tall og deretter sjekker det om det gitte tallet er partall.
#!/usr/bin/bash
# Dette skriptet ber brukeren om å skrive inn et tall, sjekker om det er partall, og skriver ut en melding tilsvarende.
# Be brukeren om å angi et nummerecho -n Skriv inn nummer:
les x# Sjekk om det angitte tallet er partall
if [ $((x % 2)) == 0 ]; deretter
ekko Tallet er partall
være
Forklaring:
-
#!/usr/bin/bash>: Dette er en shebang-linje som spesifiserer banen til Bash-tolken. Det indikerer at skriptet skal kjøres med Bash. -
echo -n 'Enter Number: '>: Denne linjen skriver ut spørsmålet Enter Number: uten et linjeskifttegn (-n>alternativ). Den venter på at brukeren skal taste inn et nummer. -
read x>: Leser brukerinndata og tilordner den til variabelenx>. -
if [ $((x % 2)) == 0 ]; then>: Denne linjen sjekker om resten av delingen av det angitte tallet (x>) med 2 er lik 0. Hvis sant, betyr det at tallet er partall. -
echo 'Number is Even'>: Hvis betingelsen i if-setningen er sann, skriver denne linjen Number is Even til konsollen.
Produksjon:

Bash-skript for å finne ut om et tall er partall
Merk: Skriptet håndterer ikke tilfeller der brukeren angir en ikke-numerisk verdi. Hvis brukeren angir en ikke-numerisk verdi, kan det gi uventede resultater. Ytterligere inndatavalidering kan legges til for å løse dette.
Last ned youtube video vlc
Bash if-else-erklæring
Den grunnleggende syntaksen for en 'hvis-else'-setning i Bash:
#!/bin/bash
if [betingelse]; deretter
# kode som skal utføres hvis betingelsen er sann
ellers
# kode som skal utføres hvis betingelsen er falsk
være
Forklaring:
-
if [ condition ]; then>: Denne linjen starter if-setningen, hvorcondition>er uttrykket som vurderes. Hvis betingelsen er sann, vil koden inne ithen>blokken er utført. -
# code to be executed if the condition is true>: Dette er kodeblokken som utføres hvis betingelsen spesifisert i if-setningen er sann. -
else>: Hvis betingelsen i if-setningen er usann, vil koden inne ielse>blokken er utført. -
# code to be executed if the condition is false>: Dette er kodeblokken som utføres hvis betingelsen spesifisert i if-setningen er usann. -
fi>: Dette markerer slutten på if-else-setningen.
Hvordan finne det større antallet ved å bruke if-else-utsagn i Bash-skriptet?
Her er Bash-skriptet for å finne ut det største tallet ved å bruke if-else-setningen i Bash Script.
#!/bin/bash
# Be brukeren om å angi en verdi for xecho -n Skriv inn verdien av x:
les xdobbeltlenket listeif [$x -gt 5 ]; deretter
ekko x er større enn 5
ellers
ekko x er ikke større enn 5
være
Forklaring:
- #!/bin/bash : Denne linjen kalles en shebang og indikerer at skriptet skal tolkes og utføres ved hjelp av Bash-skallet.
- # Be brukeren om å angi en verdi for x : Dette er en kommentar som indikerer hensikten med neste linje.
- echo -n Skriv inn verdien av x: : Denne linjen skriver ut meldingen Skriv inn verdien av x: til terminalen uten å gå til neste linje. Brukeren vil legge inn verdien på samme linje.
- les x : Denne linjen leser brukerens input og tilordner den til variabelen 'x'.
- if [$x -gt 5 ]; deretter : Dette er en if-setning som sjekker om verdien av 'x' er større enn 5.
- $x : Representerer verdien av variabelen 'x'.
- -gt : Står for større enn i sammenheng med numerisk sammenligning.
- 5 : Verdien som sammenlignes mot.
- ekko x er større enn 5 : Hvis betingelsen i forrige linje er sann, vil denne linjen bli utført, utskrift x er større enn 5 til terminalen.
- ellers : Hvis betingelsen i if-setningen er usann, hopper skriptet til else-blokken.
- ekko x er ikke større enn 5 : Denne linjen utføres hvis verdien av 'x' ikke er større enn 5, utskrift av x er ikke større enn 5 til terminalen.
- være : Dette betyr slutten på if-else-blokken.
Produksjon:

Finne et større antall ved å bruke if-else
Bash if-elif-else-erklæring
Deif-elif-else>uttalelse i Bash brukes for betinget forgrening. Den lar deg spesifisere flere betingelser og utføre forskjellige kodeblokker basert på evalueringen av disse forholdene.
Den grunnleggende syntaksen for en 'if-elif-else'-setning i Bash:
#!/bin/bash
if [betingelse1]; deretter
# Kode som skal utføres hvis betingelse1 er sann
elif [betingelse2]; deretter
# Kode som skal utføres hvis betingelse 2 er sann
elif [betingelse3]; deretter
# Kode som skal utføres hvis betingelse3 er sann
ellers
# Kode som skal utføres hvis ingen av betingelsene er sanne
være
Forklaring:
- if [betingelse1]; deretter : Dette er utgangspunktet for
if-elif-else>uttalelse. Koden i denne blokken vil bli utført hviscondition1>er sant. - # Kode som skal utføres hvis betingelse1 er sann : Erstatt denne kommentaren med den faktiske koden du vil kjøre hvis
condition1>er sant. - elif [betingelse2]; deretter : Hvis
condition1>er falsk, sjekker skriptetcondition2>. Hviscondition2>er sant, blir koden i denne blokken utført. - # Kode som skal utføres hvis betingelse 2 er sann : Erstatt denne kommentaren med den faktiske koden du vil kjøre hvis
condition2>er sant. - elif [betingelse3]; deretter : Hvis begge deler
condition1>ogcondition2>er falske, sjekker skriptetcondition3>. Hviscondition3>er sant, blir koden i denne blokken utført. - # Kode som skal utføres hvis betingelse3 er sann : Erstatt denne kommentaren med den faktiske koden du vil kjøre hvis
condition3>er sant. - ellers : Hvis ingen av de foregående betingelsene (betingelse1, betingelse2, betingelse3, osv.) er sanne, vil koden i
else>blokken er utført. - # Kode som skal utføres hvis ingen av betingelsene er sanne : Erstatt denne kommentaren med den faktiske koden du vil kjøre hvis ingen av betingelsene er sanne.
- være : Dette markerer slutten på
if-elif-else>uttalelse. Ordet fi er stavet baklengs og brukes til å lukke de betingede blokkene i Bash.
Hvordan finne ut om tall er positivt, negativt eller null ved å bruke `if-elif-else`-setningen i Bash?
La oss utvide koden i eksemplet ovenfor for å legge til betingelsen for å se etter null.
pekere i c
#!/bin/bash
# Be brukeren om å angi et nummer
echo -n Skriv inn et tall:
les numif [ $num -gt 0 ]; deretter
echo $num er et positivt tall.
elif [ $num -lt 0 ]; deretter
echo $num er et negativt tall.
ellers
ekko $num er null.
være
Forklaring:
- #!/bin/bash : Denne linjen er en shebang som indikerer at skriptet skal tolkes og utføres ved hjelp av Bash-skallet.
- # Be brukeren om å angi et nummer : Dette er en kommentar som indikerer hensikten med neste linje.
- echo -n Skriv inn et tall: : Denne linjen skriver ut meldingen Skriv inn et nummer: til terminalen uten å gå til neste linje. Brukeren vil legge inn nummeret sitt på samme linje.
- les num : Denne linjen leser brukerens input og tilordner den til variabelen 'num'.
- if [ $num -gt 0 ]; deretter : Dette er en if-setning som sjekker om verdien av 'num' er større enn 0.
- $num : Representerer verdien av variabelen 'num'.
- -gt : Står for større enn i sammenheng med numerisk sammenligning.
- 0 : Verdien som sammenlignes mot.
- echo $num er et positivt tall. : Hvis betingelsen i forrige linje er sann, vil denne linjen bli utført, utskrift av $num er et positivt tall. til terminalen.
- elif [ $num -lt 0 ]; deretter : Hvis betingelsen i if-setningen er usann, sjekker denne linjen om verdien av 'num' er mindre enn 0.
- $num : Representerer verdien av variabelen 'num'.
- -lt : Står for mindre enn i sammenheng med numerisk sammenligning.
- 0 : Verdien som sammenlignes mot.
- echo $num er et negativt tall. : Hvis betingelsen i elif-setningen er sann, vil denne linjen bli utført, utskrift av $num er et negativt tall. til terminalen.
- ellers : Hvis begge betingelsene i if- og elif-setningene er falske, hopper skriptet til else-blokken.
- ekko $num er null. : Denne linjen utføres hvis verdien av 'num' ikke er større enn 0 og ikke mindre enn 0, utskrift av $num er null. til terminalen.
- være : Dette betyr slutten på if-elif-else-blokken.
Produksjon:

hvis tall er positivt, negativt eller null ved å bruke `if-elif-else`
Bash Nested if Statement
I Bash kan du bruke nestetif>uttalelser for å skape mer komplekse betingede strukturer. Her er syntaksen for en nestetif>uttalelse:
#!/bin/bash
if [betingelse1]; deretter
# Kode som skal utføres hvis betingelse1 er sann
if [betingelse2]; deretter
# Kode som skal utføres hvis betingelse 2 er sann
ellers
# Kode som skal utføres hvis betingelse2 er usann
være
ellers
# Kode som skal utføres hvis betingelse1 er usann
være
Forklaring:
- if [betingelse1]; deretter : Dette er den ytre
if>uttalelse. Hviscondition1>er sant, kjøres koden inne i denne blokken. - # Kode som skal utføres hvis betingelse1 er sann : Erstatt denne kommentaren med den faktiske koden du vil kjøre hvis
condition1>er sant. - if [betingelse2]; deretter : Inne i blokken til den ytre
if>uttalelse, det er en indreif>uttalelse. Hviscondition2>er sant, kjøres koden inne i denne blokken. - # Kode som skal utføres hvis betingelse 2 er sann : Erstatt denne kommentaren med den faktiske koden du vil kjøre hvis
condition2>er sant. - ellers : Hvis
condition2>i det indreif>setningen er falsk, koden inne ielse>blokk av det indreif>uttalelsen er utført. - # Kode som skal utføres hvis betingelse2 er usann : Erstatt denne kommentaren med den faktiske koden du vil kjøre hvis
condition2>er falsk. - være : Dette markerer slutten på det indre
if>uttalelse. - ellers : Hvis
condition1>i det ytreif>setningen er falsk, koden inne ielse>blokk av den ytreif>uttalelsen er utført. - # Kode som skal utføres hvis betingelse1 er usann : Erstatt denne kommentaren med den faktiske koden du vil kjøre hvis
condition1>er falsk. - være : Dette markerer slutten på den ytre
if>uttalelse.
Hvordan sjekke aldersberettigelse og pensjonistfordeler i Bash ved å bruke Nested If-erklæringer?
La oss finpusse koden ovenfor litt for å bruke nested-if.
#!/bin/bash
# Be brukeren om å angi en alder
echo -n Skriv inn alderen din:
lese alderif [ $age -ge 18 ]; deretter
echo Du er stemmeberettiget.
if [ $age -ge 65 ]; deretter
echo Du er også kvalifisert for pensjonistfordeler.
ellers
echo Du er ennå ikke kvalifisert for pensjonisttilskudd.
være
ellers
echo Du er ikke stemmeberettiget ennå.
være
Forklaring:
- #!/bin/bash : Denne linjen er en shebang som indikerer at skriptet skal tolkes og utføres ved hjelp av Bash-skallet.
- # Be brukeren om å angi en alder : Dette er en kommentar som indikerer hensikten med neste linje.
- echo -n Skriv inn alderen din: : Denne linjen skriver ut meldingen Skriv inn din alder: til terminalen uten å gå til neste linje. Brukeren vil angi sin alder på samme linje.
- lese alder : Denne linjen leser brukerens input og tilordner den til variabelen 'alder'.
- if [ $age -ge 18 ]; deretter : Dette er en if-setning som sjekker om verdien av 'alder' er større enn eller lik 18.
- $alder : Representerer verdien av variabelen 'alder'.
- -ge : Står for større enn eller lik i sammenheng med numerisk sammenligning.
- 18 : Verdien som sammenlignes mot.
- echo Du er stemmeberettiget. : Hvis betingelsen i forrige linje er sann, vil denne linjen bli utført, utskrift Du er stemmeberettiget. til terminalen.
- if [ $age -ge 65 ]; deretter : Inne i den første if-blokken er dette en annen if-setning som sjekker om verdien av 'alder' er større enn eller lik 65.
- $alder : Representerer verdien av variabelen 'alder'.
- -ge : Står for større enn eller lik i sammenheng med numerisk sammenligning.
- 65 : Verdien som sammenlignes mot.
- echo Du er også kvalifisert for pensjonistfordeler. : Hvis betingelsen i det indre if-utsagnet er sant, vil denne linjen bli utført, utskrift Du er også berettiget til pensjonistfordeler. til terminalen.
- ellers : Hvis betingelsen i den indre if-setningen er usann, hopper skriptet til else-blokken inne i den ytre if-setningen.
- echo Du er ennå ikke kvalifisert for pensjonisttilskudd. : Denne linjen utføres hvis verdien av 'alder' ikke er større enn eller lik 65, utskrift Du er ennå ikke kvalifisert for pensjonistfordeler. til terminalen.
- være : Dette betyr slutten på den indre if-else-blokken.
- ellers : Hvis betingelsen i den ytre if-setningen er usann, hopper skriptet til else-blokken.
- echo Du er ikke stemmeberettiget ennå. : Denne linjen utføres hvis verdien av 'alder' ikke er større enn eller lik 18, utskrift Du er ikke stemmeberettiget ennå. til terminalen.
- være : Dette betyr slutten på den ytre if-else-blokken.
Produksjon:

nestet hvis du bruker Bash
Vanlige spørsmål og noen merknader om TILSTAND
Dette er et par ting å huske på når jeg skriver testbetingelser i bash.
1. Sørg for mellomrom mellom parentesene og selve kontroll-/sammenligningserklæringen.
Følgende vil for eksempel ikke fungere.
if [$x==0]>Bash vil rapportere en feil om en mangler ] .
2. Avslutt alltid linjen før du legger til et nytt nøkkelord, for eksempel da.
Hvis, så, else, elif og fi alle er shell-søkeord, noe som betyr at de ikke kan brukes på samme linje. Sett en ; mellom forrige setning og nøkkelordet, eller start en ny linje med nøkkelordet.
3. For å bruke mange betingelser i én setning, bruk logiske operatorer.
Vi kan bruke logiske AND(&&)- eller logiske OR(||)-operatorer for å bruke flere betingelser.
fjær mvcFor eksempel:
if [[ $x -ge $y ]] && [[ $x -ge $z ]]; then echo 'x is greatest' fi>Her er -ge en forkortelse for større enn eller lik
4. Hvordan sammenligne strenger i en Bash if-setning?
Bruk ` => `>operator for strenglikhet og ` !=`> for ulikhet.
For eksempel:
if [ '$string1' = '$string2' ]; then # Code to execute if strings are equal else # Code to execute if strings are not equal fi>
5. Kan jeg bruke regulære uttrykk i Bash if-setninger?
Ja, du kan bruke ` [[ ... ]]`> konstruksjon for mer avansert strengmatching med regulære uttrykk.
huggorm full huggorm
For eksempel:
if [[ '$string' =~ ^[0-9]+$ ]]; then # Code to execute if the string contains only numbers else # Code to execute if the string does not contain only numbers fi>
6. Hvordan sjekke om en fil finnes i et Bash-skript ved å bruke en if-setning?
Du kan bruke ` -e`> flagg i tilstanden, slik:
if [ -e 'filename' ]; then # Code to execute if the file exists else # Code to execute if the file does not exist fi>
7. Hva er syntaksen for en if-else-setning i Bash-skripting?
Den grunnleggende syntaksen for en 'hvis-anne' uttalelse i Bash-skripting er:
if [ condition ]; then # Code to execute if condition is true else # Code to execute if condition is false fi>
8. Hvordan bruker jeg elif-setningen i et Bash-skript?
Den ` elif`> setningen brukes til å kontrollere tilleggsbetingelser hvis initialenif>tilstanden er falsk.
Her er et eksempel:
if [ condition1 ]; then # Code to execute if condition1 is true elif [ condition2 ]; then # Code to execute if condition2 is true else # Code to execute if none of the conditions are true fi>
9. Hvordan kan jeg bruke logiske operatorer (AND, OR) i Bash if-setninger?
Du kan bruke ` -a`> for logisk OG og ` -o`> for logisk ELLER.
For eksempel:
if [ condition1 -a condition2 ]; then # Code to execute if both conditions are true fi>
Konklusjon
I denne artikkelen diskuterte vi Bash-skripting som er som et supernyttig verktøy for å få datamaskinen til å gjøre ting automatisk. Denne artikkelen lærte oss om if-utsagnet i Bash, som er som en beslutningstaker i manus. Vi lærte det grunnleggende, så eksempler som å sjekke om et tall er partall eller finne ut om noen kan stemme, og til og med utforsket mer avanserte ting som å håndtere mange forhold eller sette if-utsagn inni hverandre. Artikkelen ga klare forklaringer, eksempler og svarte på vanlige spørsmål for å hjelpe oss å bli bedre til å bruke Bash-skript. Det viktigste er å være forsiktig med detaljer som mellomrom og spesielle regler, slik at skriptene våre fungerer jevnt og gjør oppgaver enklere å håndtere på datamaskinen.