Kif Ikteb IF-Dikjarazzjonijiet f'Bash-Script

Kmandijiet, Sintaxxa u Eżempji

Bi stqarrija jekk, li hija tip ta 'dikjarazzjoni kondizzjonali, tista' twettaq azzjonijiet differenti skont kundizzjonijiet speċifikati. Dan effettivament jagħti lis-sistema l-abbiltà li tieħu deċiżjonijiet.

Eżempju tal-forma l-aktar sempliċi ta 'if-statement ikun:

għadd = 5 jekk [$ count == 5] imbagħad echo "$ count" fi

F'dan l-eżempju, il-varjabbli "count" hija użata biex tispeċifika kondizzjoni li tintuża bħala parti mill-if-statement. Qabel ma tiġi eżegwita l-if-statement, il-varjabbli "għadd" huwa assenjat il-valur "5". L-if-statement mbagħad tiċċekkja jekk il-valur ta '"għadd" hu "5". Jekk dan huwa l-każ, id-dikjarazzjoni bejn il-kliem kjavi "imbagħad" u "fi" jiġu eżegwiti, inkella kwalunkwe dikjarazzjoni wara l-if-statement tiġi eżegwita. Il-kelma prinċipali "fi" hija "jekk" spjegata b'lura. Il-lingwa tal-kitba bash tuża din il-konvenzjoni biex timmarka t-tmiem ta 'espressjoni kumplessa, tali stqarrija jew stqarrijiet ta' każijiet.

Id-dikjarazzjoni "echo" turi l-argument tagħha, f'dan il-każ, il-valur tal-varjabbli "count", għat-tieqa tat-terminal. L-indentazzjoni tal-kodiċi bejn il-kliem kjavi tal-if-statement ittejjeb il-leġġibbiltà iżda mhix meħtieġa.

Jekk għandek sitwazzjoni fejn biċċa kodiċi għandha tiġi eżegwita biss jekk kundizzjoni mhix vera, tista 'tuża l-kelma "inkella" f'dikjarazzjoni jekk, bħal f'dan l-eżempju:

għadd = 5 jekk [$ count == 5] allura l-echo "$ count" else echo "jgħodd mhux 5" fi

Jekk il-kondizzjoni "$ count == 5" hija vera, is-sistema timpressjona l-valur tal-varjabbli "count", inkella timmarka s-sekwenza "count is not 5".

Jekk trid tiddifferenzja bejn kundizzjonijiet multipli, tista 'tuża l-kelma prinċipali "elif", li hija derivata minn "inkella jekk", bħal f'dan l-eżempju:

jekk [$ count == 5] allura l-eku "għadd huwa ħames" elif [$ count == 6] allura l-eku "għadd huwa sitt" inkella eku "l-ebda wieħed minn dawn" fi

Jekk "għadd" huwa "5", is-sistema tesprimi "l-għadd huwa ħamsa". Jekk "count" mhix "5" iżda "6", is-sistema prints "count is six". Jekk la hija "5" u lanqas "6", is-sistema timmarka "l-ebda minn dawn ta 'hawn fuq".

Kif jista 'jkollok guessed, jista' jkollok xi numru ta 'klawsoli "elif". Eżempju b'ħafna kondizzjonijiet "elif" ikun:

jekk [$ count == 5] allura l-echo "count is five" elif [$ count == 6] allura l-echo "count is six" elif [$ count == 7] allura echo "count is seven" elif [$ count = = 8] allura l-echo "count hu tmien" elif [$ count == 9] allura l-eku "għadd huwa disa" inkella eku "l-ebda wieħed minn dawn" fi

Mod aktar kompatt biex tikteb dikjarazzjonijiet bħal dawn b'kundizzjonijiet multipli huwa l-metodu tal- każ . Din tiffunzjona simili għall-if-statement b'ħafna klawsoli "elif" iżda hija aktar konċiża. Per eżempju, il-kodiċi ta 'hawn fuq jista' jerġa 'jinkiteb bid-dikjarazzjoni tal-"każ" kif ġej:

il-każ "$ għadd" f'5) l-echo "għadd huwa ħamsa" ;; 6) echo "għadd huwa ta 'sitt"; 7) echo "għadd huwa ta 'seba" ;; 8) echo "għadd hu tmien" ;; 9) echo "għadd huwa disa" ;; *) echo "xejn ta 'hawn fuq" esac

Jekk id-dikjarazzjonijiet spiss jintużaw ġewwa for-loops jew while-loops bħal f'dan l-eżempju:

għadd = 1 magħmul = 0 filwaqt li [$ count -le 9] jorqdu 1 ((count ++)) jekk [$ count == 5] imbagħad ikompli l-echo "$ count" magħmul echo Find

Tista 'wkoll ikollok nested jekk dikjarazzjonijiet. Id-dikjarazzjoni ta 'l-iżgħar sempliċiment imqabbda hija tal-forma: jekk ... allura ... inkella ... jekk ... imbagħad ... fi ... fi. Madankollu, jekk l-istqarrija tista 'tinqabad bi kumplessità arbitrarja.

Ara wkoll kif jgħaddi l-argumenti għal kitba bash , li turi kif tuża kundizzjonjiet biex tipproċessa parametri mgħoddija mil-linja tal-kmand.

Il-qoxra bash tipprovdi kostruzzjonijiet oħra ta 'programmar, bħal for-loops , while-loops , u espressjonijiet aritmetiċi .