logo

Bash Scripting – If Statement

Bash är en tolk för kommandospråk. Det är en standardkommandotolkare på de flesta GNU/ Linux-system och är allmänt tillgänglig på olika operativsystem. Namnet är en förkortning för Bourne-Again SHell . Skript möjliggör exekvering av instruktioner som annars skulle exekveras en efter en interaktivt.

konvertera från sträng till heltals java

I den här artikeln kommer vi att diskutera om if-uttalande i bash-skript.

Bash If uttalande

Den grundläggande syntaxen för en 'if'-sats i Bash:

#!/bin/bash  if [ condition ]; then  # code to be executed if the condition is true fi>

Förklaring:



  • if [ condition ]; then> : Den här raden startar if-satsen, därcondition>är uttrycket som utvärderas. Om villkoret är sant, koden inutithen>blocket exekveras.
  • # code to be executed if the condition is true> : Detta är kodblocket som exekveras om villkoret som anges i if-satsen är sant.
  • fi> : Detta markerar slutet på if-satsen.

Bash-skript för att avgöra om ett tal är jämnt

Följande är ett exempel manus som kommer att uppmana dig att mata in ett nummer och sedan kontrollerar det om det givna numret är jämnt.

#!/usr/bin/bash
# Det här skriptet uppmanar användaren att ange ett nummer, kontrollerar om det är jämnt och skriver ut ett meddelande därefter.
# Be användaren att ange ett nummer

echo -n Ange nummer:
läs x

# Kontrollera om det angivna numret är jämnt
if [ $((x % 2)) == 0 ]; sedan
echo Number är jämnt
vara

Förklaring:

  1. #!/usr/bin/bash> : Detta är en shebang-rad som anger vägen till Bash-tolken. Det indikerar att skriptet ska köras med Bash.
  2. echo -n 'Enter Number: '> : Den här raden skriver ut uppmaningen Ange nummer: utan ett nyradstecken (-n>alternativ). Den väntar på att användaren ska ange ett nummer.
  3. read x> : Läser användarinmatningen och tilldelar den till variabelnx>.
  4. if [ $((x % 2)) == 0 ]; then> : Den här raden kontrollerar om resten av divisionen av det angivna numret (x>) med 2 är lika med 0. Om sant betyder det att talet är jämnt.
  5. echo 'Number is Even'> : Om villkoret i if-satsen är sant, skriver den här raden Number is Even till konsolen.

Produktion:

Bash-skript för att avgöra om ett tal är jämnt

Bash-skript för att avgöra om ett tal är jämnt

Notera: Skriptet hanterar inte fall där användaren anger ett icke-numeriskt värde. Om användaren anger ett icke-numeriskt värde kan det ge oväntade resultat. Ytterligare indatavalidering kan läggas till för att åtgärda detta.

Bash if-else uttalande

Den grundläggande syntaxen för en 'om-else'-sats i Bash:

#!/bin/bash

if [villkor]; sedan

# kod som ska köras om villkoret är sant

annan

# kod som ska köras om villkoret är falskt

vara

Förklaring:

  • if [ condition ]; then> : Den här raden startar if-satsen, därcondition>är uttrycket som utvärderas. Om villkoret är sant, koden inutithen>blocket exekveras.
  • # code to be executed if the condition is true> : Detta är kodblocket som exekveras om villkoret som anges i if-satsen är sant.
  • else> : Om villkoret i if-satsen är falskt, koden inutielse>blocket exekveras.
  • # code to be executed if the condition is false> : Detta är kodblocket som exekveras om villkoret som anges i if-satsen är falskt.
  • fi> : Detta markerar slutet på if-else-satsen.

Hur hittar man det större antalet med if-else-satser i Bash Script?

Här är Bash-skriptet för att ta reda på det större antalet med if-else-satsen i Bash Script.

#!/bin/bash
# Be användaren att ange ett värde för x

echo -n Ange värdet på x:
läs x

if [ $x -gt 5 ]; sedan
eko x är större än 5
annan
echo x är inte större än 5
vara

Förklaring:

  • #!/bin/bash : Den här raden kallas en shebang och indikerar att skriptet ska tolkas och köras med Bash-skalet.
  • # Be användaren att ange ett värde för x : Detta är en kommentar som anger syftet med nästa rad.
  • echo -n Ange värdet på x: : Denna rad skriver ut meddelandet Ange värdet på x: till terminalen utan att gå till nästa rad. Användaren anger sitt värde på samma rad.
  • läs x : Den här raden läser användarens inmatning och tilldelar den till variabeln 'x'.
  • if [ $x -gt 5 ]; sedan : Detta är en if-sats som kontrollerar om värdet på 'x' är större än 5.
    • $x : Representerar värdet på variabeln 'x'.
    • -gt : Står för större än i samband med numerisk jämförelse.
    • 5 : Värdet som jämförs mot.
  • eko x är större än 5 : Om villkoret i föregående rad är sant, kommer denna rad att exekveras, utskrift x är större än 5 till terminalen.
  • annan : Om villkoret i if-satsen är falskt, hoppar skriptet till else-blocket.
  • echo x är inte större än 5 : Denna rad exekveras om värdet på 'x' inte är större än 5, utskrift av x är inte större än 5 till terminalen.
  • vara : Detta betyder slutet på om-else-blocket.

Produktion:

Hitta ett större antal med if-else

Hitta ett större antal med if-else

Bash if-elif-else uttalande

Deif-elif-else>uttalande i Bash används för villkorlig förgrening. Det låter dig specificera flera villkor och exekvera olika kodblock baserat på utvärderingen av dessa villkor.

Den grundläggande syntaxen för ett 'if-elif-else' uttalande i Bash:

#!/bin/bash

if [villkor1]; sedan
# Kod som ska köras om villkor1 är sant
elif [villkor2]; sedan
# Kod som ska köras om villkor2 är sant
elif [villkor3]; sedan
# Kod som ska köras om villkor3 är sant
annan
# Kod som ska köras om inget av villkoren är sant
vara

Förklaring:

  • if [villkor1]; sedan : Detta är utgångspunkten förif-elif-else>påstående. Koden inom detta block kommer att exekveras omcondition1>är sant.
  • # Kod som ska köras om villkor1 är sant : Ersätt den här kommentaren med den faktiska koden du vill köra omcondition1>är sant.
  • elif [villkor2]; sedan : Omcondition1>är falsk, kontrolleras skriptetcondition2>. Omcondition2>är sant, exekveras koden inom detta block.
  • # Kod som ska köras om villkor2 är sant : Ersätt den här kommentaren med den faktiska koden du vill köra omcondition2>är sant.
  • elif [villkor3]; sedan : Om bådacondition1>ochcondition2>är falska, kontrolleras skriptetcondition3>. Omcondition3>är sant, exekveras koden inom detta block.
  • # Kod som ska köras om villkor3 är sant : Ersätt den här kommentaren med den faktiska koden du vill köra omcondition3>är sant.
  • annan : Om inget av de föregående villkoren (villkor1, villkor2, villkor3, etc.) är sant, kommer koden ielse>blocket exekveras.
  • # Kod som ska köras om inget av villkoren är sant : Ersätt den här kommentaren med den faktiska koden du vill köra om inget av villkoren är sant.
  • vara : Detta markerar slutet påif-elif-else>påstående. Ordet fi stavas baklänges och används för att stänga de villkorliga blocken i Bash.

Hur hittar man om siffran är positiv, negativ eller noll med hjälp av 'if-elif-else'-satsen i Bash?

Låt oss utöka koden i exemplet ovan för att lägga till villkoret för att kontrollera noll.

#!/bin/bash

# Be användaren att ange ett nummer

echo -n Ange ett nummer:
läs num

if [ $num -gt 0 ]; sedan
echo $num är ett positivt tal.
elif [ $num -lt 0 ]; sedan
echo $num är ett negativt tal.
annan
echo $num är noll.
vara

Förklaring:

  • #!/bin/bash : Den här raden är en rubrik som indikerar att skriptet ska tolkas och köras med Bash-skalet.
  • # Be användaren att ange ett nummer : Detta är en kommentar som anger syftet med nästa rad.
  • echo -n Ange ett nummer: : Denna rad skriver ut meddelandet Ange ett nummer: till terminalen utan att gå till nästa rad. Användaren anger sitt nummer på samma rad.
  • läs num : Den här raden läser användarens inmatning och tilldelar den till variabeln 'num'.
  • if [ $num -gt 0 ]; sedan : Detta är en if-sats som kontrollerar om värdet på 'num' är större än 0.
    • $num : Representerar värdet på variabeln 'num'.
    • -gt : Står för större än i samband med numerisk jämförelse.
    • 0 : Värdet som jämförs mot.
  • echo $num är ett positivt tal. : Om villkoret i föregående rad är sant, kommer denna rad att exekveras, utskrift av $num är ett positivt tal. till terminalen.
  • elif [ $num -lt 0 ]; sedan : Om villkoret i if-satsen är falskt kontrollerar den här raden om värdet på 'num' är mindre än 0.
    • $num : Representerar värdet på variabeln 'num'.
    • -lt : Står för mindre än i samband med numerisk jämförelse.
    • 0 : Värdet som jämförs mot.
  • echo $num är ett negativt tal. : Om villkoret i elif-satsen är sant kommer denna rad att exekveras, utskrift av $num är ett negativt tal. till terminalen.
  • annan : Om båda villkoren i if- och elif-satserna är falska, hoppar skriptet till else-blocket.
  • echo $num är noll. : Denna rad exekveras om värdet på 'num' inte är större än 0 och inte mindre än 0, utskrift av $num är noll. till terminalen.
  • vara : Detta betyder slutet på if-elif-else-blocket.

Produktion:

om siffran är positiv, negativ eller noll Använd 'if-elif-else

om siffran är positiv, negativ eller noll Använd 'if-elif-else'

Bash Nested if Statement

I Bash kan du använda kapsladeif>uttalanden för att skapa mer komplexa villkorsstrukturer. Här är syntaxen för en kapsladif>påstående:

#!/bin/bash

if [villkor1]; sedan
# Kod som ska köras om villkor1 är sant
if [villkor2]; sedan
# Kod som ska köras om villkor2 är sant
annan
# Kod som ska köras om villkor2 är falskt
vara
annan
# Kod som ska köras om villkor1 är falskt
vara

Förklaring:

  • if [villkor1]; sedan : Detta är den yttreif>påstående. Omcondition1>är sant exekveras koden inuti detta block.
  • # Kod som ska köras om villkor1 är sant : Ersätt den här kommentaren med den faktiska koden du vill köra omcondition1>är sant.
  • if [villkor2]; sedan : Inne i blocket på det yttreif>uttalande, det finns ett inreif>påstående. Omcondition2>är sant exekveras koden inuti detta block.
  • # Kod som ska köras om villkor2 är sant : Ersätt den här kommentaren med den faktiska koden du vill köra omcondition2>är sant.
  • annan : Omcondition2>i det inreif>uttalandet är falskt, koden inutielse>block av det inreif>uttalandet körs.
  • # Kod som ska köras om villkor2 är falskt : Ersätt den här kommentaren med den faktiska koden du vill köra omcondition2>är falskt.
  • vara : Detta markerar slutet på det inreif>påstående.
  • annan : Omcondition1>i det yttreif>uttalandet är falskt, koden inutielse>block av det yttreif>uttalandet körs.
  • # Kod som ska köras om villkor1 är falskt : Ersätt den här kommentaren med den faktiska koden du vill köra omcondition1>är falskt.
  • vara : Detta markerar slutet på den yttreif>påstående.

Hur kontrollerar man åldersberättigande och pensionsförmåner i Bash med hjälp av Nested If-utlåtanden?

Låt oss justera koden ovan lite för att använda kapslade-if.

#!/bin/bash
# Be användaren att ange en ålder
echo -n Ange din ålder:
läsa ålder

if [ $age -ge 18 ]; sedan
echo Du är röstberättigad.
if [ $age -ge 65 ]; sedan
echo Du är också berättigad till pensionärsförmåner.
annan
echo Du är ännu inte berättigad till pensionärsförmåner.
vara
annan
echo Du är inte berättigad att rösta ännu.
vara

Förklaring:

  • #!/bin/bash : Den här raden är en rubrik som indikerar att skriptet ska tolkas och köras med Bash-skalet.
  • # Be användaren att ange en ålder : Detta är en kommentar som anger syftet med nästa rad.
  • echo -n Ange din ålder: : Denna rad skriver ut meddelandet Ange din ålder: till terminalen utan att flytta till nästa rad. Användaren anger sin ålder på samma rad.
  • läsa ålder : Den här raden läser användarens inmatning och tilldelar den till variabeln 'ålder'.
  • if [ $age -ge 18 ]; sedan : Detta är en if-sats som kontrollerar om värdet på 'ålder' är större än eller lika med 18.
    • $ålder : Representerar värdet på variabeln 'ålder'.
    • -ge : Står för större än eller lika med i samband med numerisk jämförelse.
    • 18 : Värdet som jämförs mot.
  • echo Du är röstberättigad. : Om villkoret i föregående rad är sant, kommer denna rad att exekveras, utskrift Du är berättigad att rösta. till terminalen.
  • if [ $age -ge 65 ]; sedan : Inuti det första if-blocket är detta en annan if-sats som kontrollerar om värdet på 'ålder' är större än eller lika med 65.
    • $ålder : Representerar värdet på variabeln 'ålder'.
    • -ge : Står för större än eller lika med i samband med numerisk jämförelse.
    • 65 : Värdet som jämförs mot.
  • echo Du är också berättigad till pensionärsförmåner. : Om villkoret i det inre if-påståendet är sant, kommer denna rad att utföras, utskrift Du är också berättigad till pensionärsförmåner. till terminalen.
  • annan : Om villkoret i den inre if-satsen är falsk, hoppar skriptet till else-blocket inuti den yttre if-satsen.
    • echo Du är ännu inte berättigad till pensionärsförmåner. : Den här raden körs om värdet på 'ålder' inte är större än eller lika med 65, utskrift Du är ännu inte berättigad till pensionärsförmåner. till terminalen.
  • vara : Detta betyder slutet på det inre om-else-blocket.
  • annan : Om villkoret i den yttre if-satsen är falskt, hoppar skriptet till else-blocket.
    • echo Du är inte berättigad att rösta ännu. : Den här raden exekveras om värdet på 'ålder' inte är större än eller lika med 18, utskrift Du är inte berättigad att rösta ännu. till terminalen.
  • vara : Detta betyder slutet på det yttre om-else-blocket.

Produktion:

kapslade om du använder Bash

kapslade om du använder Bash

Vanliga frågor och några anmärkningar om KONDITION

Det här är några saker att tänka på när jag skriver testvillkor i bash.

xor i java

1. Säkerställ blanksteg mellan parenteserna och själva kontroll-/jämförelseutlåtandet.

Till exempel kommer följande inte att fungera.

if [$x==0]>

Bash kommer att rapportera ett fel om en saknas ] .

2. Avsluta alltid raden innan du lägger till ett nytt nyckelord, som då.

Om, då, else, elif och fi alla är skalnyckelord, vilket betyder att de inte kan användas på samma rad. Sätt ett ; mellan föregående påstående och nyckelordet, eller starta en ny rad med nyckelordet.

3. För att använda många villkor i ett påstående, använd logiska operatorer.

Vi kan använda logiska AND(&&)- eller logiska ELLER(||)-operatorer för att använda flera villkor.

Till exempel:

if [[ $x -ge $y ]] && [[ $x -ge $z ]]; then  echo 'x is greatest' fi>

Här är -ge en förkortning för större än eller lika med

4. Hur jämför man strängar i en Bash if-sats?

Använd ` => `>operator för stränglikhet och ` !=`> för ojämlikhet.

Till exempel:

if [ '$string1' = '$string2' ]; then  # Code to execute if strings are equal else  # Code to execute if strings are not equal fi>

5. Kan jag använda reguljära uttryck i Bash if-satser?

Ja, du kan använda ` [[ ... ]]`> konstruktion för mer avancerad strängmatchning med reguljära uttryck.

Till exempel:

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. Hur kontrollerar man om en fil finns i ett Bash-skript med hjälp av en if-sats?

Du kan använda ` -e`> flagga i skicket, så här:

if [ -e 'filename' ]; then  # Code to execute if the file exists else  # Code to execute if the file does not exist fi>

7. Vad är syntaxen för en if-else-sats i Bash-skript?

Den grundläggande syntaxen för en 'om-annat' uttalande i Bash-skript är:

if [ condition ]; then  # Code to execute if condition is true else  # Code to execute if condition is false fi>

8. Hur använder jag elif-satsen i ett Bash-skript?

Den ` elif`> uttalande används för att kontrollera ytterligare villkor om initialenif>tillståndet är falskt.

Här är ett exempel:

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. Hur kan jag använda logiska operatorer (AND, OR) i Bash if-satser?

Du kan använda ` -a`> för logiska OCH och ` -o`> för logiskt ELLER.

Till exempel:

if [ condition1 -a condition2 ]; then  # Code to execute if both conditions are true fi>

Slutsats

I den här artikeln diskuterade vi Bash-skript som är som ett superanvändbart verktyg för att få din dator att göra saker automatiskt. Den här artikeln lärde oss om if-satsen i Bash, som är som en beslutsfattare i manus. Vi lärde oss grunderna, såg exempel som att kontrollera om en siffra är jämn eller ta reda på om någon kan rösta och till och med utforskade finare saker som att hantera många förhållanden eller sätta if-påståenden i varandra. Artikeln gav tydliga förklaringar, exempel och besvarade vanliga frågor för att hjälpa oss att bli bättre på att använda Bash-skript. Det viktigaste är att vara försiktig med detaljer som avstånd och specialregler, så att våra skript fungerar smidigt och gör uppgifter lättare att hantera på datorn.