Använda if…else-satsen i Bash för exekvering av villkorlig kod.
Bash (Bourne Again Shell) är en skalkommandotolk och ett skriptspråk i GNU/Linux operativsystem. Det är standardskalet för de flesta Linux-distributioner.
Villkorliga uttalanden är viktiga i alla programmeringsspråk, kompilerade såväl som skriptade. De låter användaren exekvera en bit kod baserat på ett fördefinierat villkor, vilket är en av grunderna för programmeringslogik. I den här artikeln kommer vi att lära oss hur man använder om annat
villkorligt uttalande i Bash.
Introduktion
De om annat
uttalande i Bash låter användaren manipulera flödet av kod baserat på förhållanden. Användaren kan specificera separata kodblock som ska exekveras, av vilka endast ett slutligen kommer att exekveras under körning, baserat på motsvarande villkor som är uppfyllt.
Observera att mer än två villkor kan anges, för vilka elif
uttalande kan användas. Användaren kan ange valfritt antal villkor med hjälp av elif
, och slutligen ett standardvillkor som använder annan
blockera. Låt oss se mer om detta i syntaxen och exemplen nedan.
Allmän syntax
Den allmänna syntaxen för om annat
uttalande i Bash är:
om då annan fi
Här, om uppfyller, d.v.s. om den returnerar 0 (framgång), så exekveras kodblock 1. Om tillståndet inte returnerar 0, dvs det returnerar en felstatus, exekveras kodblocket 2. De
om annat
blocket slutar med en fi
påstående.
För flera block som motsvarar flera villkor,elif
är använd:
om då elif då elif då ... ... annat fi
Här kontrolleras villkoren i ordning och kodblocket för det första villkoret som returnerar status 0 (framgång) exekveras. T.ex. om Om inget av villkoren returnerar status 0, Observera att För att exekvera ett kodblock om en variabel har ett särskilt värde: Så här kontrollerar du om det finns flera värden: Villkoren kan vara alla Linux-kommandon. Motsvarande kodblock kommer att köras om kommandot körs framgångsrikt. I exemplet ovan, sedan Vi kan också häcka en annan Detta är användbart när en separat uppsättning villkor ska kontrolleras när ett initialt villkor är uppfyllt. Till exempel försöker följande kod installera en webbserverprogramvara: Koden kontrollerar först om Nginx redan är installerat i systemet. Om det är det, visar den bara ett meddelande och avslutas. Om det inte är det försöker den installera Nginx. Om Nginx av någon anledning inte kunde installeras i systemet från paketet, försöker den installera Apache2. Om till och med Apache2 ger fel under installationen, avslutas den och visar ett meddelande om att ingen programvara kunde installeras. På liknande sätt kan ett kapslat block användas inuti en I likhet med vilken Bash-kod som helst, är Användaren kan också spara denna kod i en skriptfil och köra skriptfilen. De För att ge exekveringsbehörigheter för den här filen, kör: Slutligen, för att köra filen, kör: Liknar alla programmeringsspråk, returnerar status som inte är noll (fel), då
är kontrollerad. Om
returnerar status 0,
avrättas. Efter detta kontrolleras inte ytterligare villkor och kodexekveringen fortsätter till koden efter
fi
påstående. i det andra blocket exekveras. Observera att det andra blocket är valfritt. Om inget villkor är uppfyllt, samt nej
annan
block är specificerat, inget villkorligt kodblock kommer att köras och kodexekveringen fortsätter till koden efter fi
uttalande, som visas i flödesdiagrammet nedan.sedan
uttalandet ska användas först efter om
och elif
uttalanden och krävs inte efter annan
påstående.Exempel
x=0 om [ $x -eq 0 ] sedan eko "Värdet på X är 0" annars eko "Värdet på X är inte 0" fi
x=2 om [ $x -eq 0 ] sedan eko "Värde på X är 0" elif [ $x -eq 1 ] sedan eko "Värde på X är 1" elif [ $x -eq 2 ] sedan eko "Value of X är 2" annars eko "Värdet på X är inte 0" fi
om npm -v sedan upprepa "NPM närvarande i systemet" annars sudo apt installera npm fi
npm
inte installerades i systemet, kommandot npm -v
returnerade en status som inte är noll. Därför gick kodexekveringen in i annan
block, där vi installerar npm med hjälp av benägen
pakethanterare. Som vi kan se, fick det mig att ange lösenordet och började installationen av npm.om annat
block inuti en om
, annan
eller elif
blockera:x=0 y=1 om [ $x -eq 0 ] sedan eko "X är 0" om [ $y -eq 1 ] sedan eko "Y är 1" annars eko "Y är inte 1" fi annat eko "X är inte 0" fi
om nginx -v sedan upprepa "NGINX är redan installerat." annars, om sudo apt installerar nginx, upprepa "NGINX-installationen lyckad." elif sudo apt installera apache2 och sedan upprepa "APACHE2 installationen lyckades." else echo "Det går inte att installera någon webbprogramvara." fi
elif
blockera också.Utför
om annat
: Skript och kommandoradom annat
uttalande kan användas i Bash-skal direkt eller från en körbar skalskriptfil. När Bash-tolken hittar en om
, annan
eller elif
uttalandet fortsätter det skalet för att låta användaren gå in i kodblocket.#!/bin/bash
vid starten anger tolken som ska användas när filen körs. Även om Bash är det vanligaste skalet nuförtiden, föredrar vissa användare skal som zsh, som bör anges i stället för bash i början av den här filen.chmod +x test.sh
./test.sh
Slutsats
om annat
uttalande är en grundläggande egenskap hos Bash. Att lära sig dess användning går långt i att skriva grundläggande såväl som avancerade skript.