Si të shkruani IF-deklarata në një Bash-Script

Komandat, Sintaksa dhe Shembuj

Me një deklaratë nëse-deklaratë, e cila është një lloj deklarate e kushtëzuar, mund të kryeni veprime të ndryshme në varësi të kushteve të specifikuara. Ajo në mënyrë efektive i jep sistemit aftësinë për të marrë vendime.

Një shembull i formës më të thjeshtë të një deklarate nëse do të ishte:

count = 5 nëse [$ count == 5] pastaj echo "$ count" fi

Në këtë shembull, variabli "numërim" përdoret për të përcaktuar një kusht që përdoret si pjesë e deklaratës if-statement. Para se të ekzekutohet deklarata if-statement, variabli "count" është caktuar vlerën "5". Nëse-deklarata pastaj kontrollon nëse vlera e "numërimit" është "5". Nëse është kështu, deklarata midis fjalëve "pastaj" dhe "fi" ekzekutohen, përndryshe çdo deklaratë pas deklaratës if-ekzekutohet. Fjala "fi" është "nëse" është shkruar prapa. Gjuha bash scripting përdor këtë konventë për të shënuar fundin e një shprehje komplekse, një deklaratë nëse-ky apo deklaratave të rastit.

Deklarata "echo" shtyp argumentin e saj, në këtë rast, vlerën e ndryshores "numërim", në dritaren e terminalit. Bërja e kodit midis fjalëve kyçe të deklaratës nëse përmirëson lexueshmërinë, por nuk është e nevojshme.

Nëse keni një situatë ku një pjesë e kodit duhet të ekzekutohet vetëm nëse një kusht nuk është i vërtetë, mund të përdorni fjalën "tjetër" në një deklaratë nëse, si në këtë shembull:

count = 5 nëse [$ count == 5] pastaj echo "$ count" tjetër echo "count nuk është 5" fi

Nëse gjendja "$ count == 5" është e vërtetë, sistemi shtyp vlerën e "numërimit" të ndryshores, përndryshe printon stringin "numërimi nuk është 5".

Nëse dëshironi të dalloni midis kushteve të shumëfishta, mund të përdorni fjalën "elif", që rrjedh nga "tjetër nëse", si në këtë shembull:

nëse [$ count == 5] atëherë echo "numërimi është pesë" elif [$ count == 6] pastaj echo "count është gjashtë" tjetër echo "asnjë nga lart" fi

Nëse "numërimi" është "5", sistemi shtyp "numërimi është pesë". Nëse "numërimi" nuk është "5" por "6", sistemi shtyp "numërimi është gjashtë". Nëse nuk është as "5" as "6", sistemi shtyp "asnjë nga të mësipërmet".

Siç mund ta keni menduar, mund të keni ndonjë numër të klauzolave ​​"elif". Një shembull me kushte të shumëfishta "elif" do të ishte:

nëse [$ count == 5] pastaj echo "count është pesë" elif [$ count == 6] atëherë echo "count është gjashtë" elif [count count == 7] pastaj echo "count është shtatë" elif [$ count = = 8] atëherë echo "count është tetë" elif [$ count == 9] pastaj echo "count është nëntë" tjetër echo "asnjë nga lart" fi

Një mënyrë më kompakte për të shkruar deklarata të tilla me kushte të shumëfishta është metoda e rastit . Funksionon i ngjashëm me deklaratën if-me klauzolat e shumta "elif", por është më konciz. Për shembull, kodi i mësipërm mund të ri-shkruhet me deklaratën "rast" si më poshtë:

rasti "$ count" në 5) echo "numërimi është pesë" ;; 6) echo "numërimi është gjashtë" ;; 7) echo "count është shtatë" ;; 8) echo "count është tetë" ;; 9) echo "count është nëntë" ;; *) echo "asnjë nga esac më lart"

Nëse-deklaratat janë përdorur shpesh brenda për-unazore ose loops ndërsa në këtë shembull:

count = 1 bërë = 0 ndërsa [$ count -le 9] nuk fle 1 ((count ++)) nëse [$ count == 5] pastaj vazhdo fi echo "$ count" done echo Finished

Ju gjithashtu mund të keni nested nëse deklarata. Thjesht nested nëse deklarata është e formës: nëse ... atëherë ... tjetër ... nëse ... atëherë ... fi ... fi. Megjithatë, nëse deklarata mund të mbivendoset me kompleksitet arbitrar.

Shih gjithashtu se si t'i kalosh argumentet një skede bash , e cila tregon se si të përdoren kushtet për të përpunuar parametrat e kaluar nga rreshti i komandës.

Shembja bash siguron konstruksione të tjera të programimit, të tilla si for-loops , while-loops , dhe shprehjet aritmetike .