Wéi schreiwen d'IF-Statements an e Bash-Skript

Commands, Syntax, an Beispiller

Mat enger If-Ausso, déi eng Zort vun Bedingungserklärung ass, kënnt Dir ënnerschiddlech Aktiounen ënnerhuelen, jee no uwendeg Konditiounen. Et effektiv mécht de System d'Fäegkeet, Décisiounen ze huelen.

E Beispill vun der einfachst Form vun engem If-Aussoe wier:

count = 5 wann [$ count == 5] dann echo "$ count" fi

An dësem Beispill gëtt d'Variabel "Zähl" benotzt fir eng Zoustänn festzeleeën, déi als Deel vun der if-Aussoe benotzt gëtt. Virun der if-deklaratioun ausgezeechent gëtt déi variabel "count" dem Wäert "5" zugewielt. D'If-Aussoe kontrolléiert ob de Wäert vum "Zielt" "5" ass. Wann dat am Fall ass d'Erklärung tëschent den Schlësselwierder "Dann" an "fi" ausgezeechent ginn, soss kënnen all Aussoen no der if-Aussoe ausgehandelt ginn. De Schlësselwierder "fi" ass "wann" rappeléiert. D'Bash Scripting Sprooch benotzt dës Convention, fir den Enn vun engem komplexen Ausdrock ze markéieren, esou e Fall oder Ausso.

De "Echo" -Anhalt dierft säin Argument, an dësem Fall, de Wäert vun der Variablen "count", an der Termin window. Gitt d'Iddi vum Code tëschent de Schlësselwierder vun der if-Ausso verbessert d'Liesbarkeet, awer net néideg.

Wann Dir eng Situatioun, wou e Code of code just gemaach soll ginn, wann eng Conditioun ass net richteg ass, kënnt Dir de Schlësselbegrëffer "else" an enger If-Ausso maachen, wéi an dësem Beispill:

Zielt = 5 wann [$ count == 5] dann echo "$ count" Aner Echo "Grof ass net 5" fi

Wann d'Konditioun "$ count == 5" ass richteg, driwwer de System de Wäert vun der Variablen "Zähleg" gedréckt, well soss dierf de String "Zähl ass net 5".

Wann Dir verschidde Konditiounen ënnerschreift wëllt, kënnt Dir de Schlësselwuert "elif" benotzen, wat aus "anererfalls" abgoung, wéi an dësem Beispill:

Wann [$ count == 5] dann echo "count is five" elif [$ count == 6] dann echo "count is six" och echo "none of the above"

Wann "count" ass "5" ass de System d'Zuelen "fënnef". Wann "count" net "5" mee "6" ass, gëtt de System "count count six" gedréckt. Wann et keng "5" nach "6" ass, entwéckelt de System "none of the above".

Wéi Dir scho gefall hutt, kënnt Dir eng Rei vun "elif" Klauselen hunn. E Beispill mat méi "elif" Bedingunge wier:

Wann ech [$ count == 5] dann echo "count is five" elif [$ count == 6] dann echo "count six" elif [$ count == 7] dann echo "count is seven" elif [$ count = = 8] dann echo "count is eight" elif [$ count == 9] dann echo "count is nine" Aner Echo "none of the above" fi

Eng méi kompakt Manéier fir esou Aussoen mat verschiddene Konditiounen ze schreiwen ass d'Fallmethod. Et funktionnéiert ähnlech wéi d'If-Erklärung mat méi "elif" Klauselen, awer méi méi präzis. Zum Beispill kënnt dee cijérale Code selwer mat der "Fall" -Anweisung geschriwwe wéi folgend:

Fall "count" am 5) echo "count is five" ;; 6) Echo "Grof ass sechs" ;; 7) Echo "Grof ass siwen" ;; 8) echo "count is eight" ;; 9) echo "count is nine" ;; *) Echo "none of the above" esac

Wann d'Aussoën oft öfters an d' For-Loops oder wann-Loop benotzt wéi an dësem Beispill:

Zielt = 1 fäeg = 0, wann [$ count -le 9] schlofen 1 ((count ++)) wann [$ count == 5] dann weider fi echo "$ count" gemaach Echo Ofgeschloss

Dir kënnt och ugesinn wann Aussoen. Am einfachsten ass et net wann d'Ausso vun der Form ass: wann ... dann ... och ... wann ... dann ... fi ... fi. Allerdéngs, wann-Ausso kann mat arbiträren Komplexitéit ugesetzt ginn.

Kuckt och, wéi Dir Argumenter op e Lachschrëft gitt , dat weist wéi Dir Konditioune benotze fir Parameteren déi vun der Kommandozeilegung ofgetrennt sinn.

De Bash-Shell bitt aner Programméiere Konstrukt, wéi For-Loops , während-Loops , an arithmetesch Ausdrock .