Чӣ тавр бояд нависед IF-Statements дар Bash-Script

Фармонҳо, матн ва намунаҳо

Бо як изҳорот, ки намуди шартҳои шартӣ аст, шумо метавонед вобаста ба шароитҳои мушаххас амалҳои амалиро иҷро кунед. Он ба таври самаранок системаро қобилияти қабул кардани қарорҳоро медиҳад.

Намунаи соддатарин шакли формулаи зерин хоҳад буд:

рақами 5 = [$ count == 5] пас он "$ count" -ро гиред

Дар ин мисол, "санҷиш" тағйирёбанда барои муайян кардани ҳолати, ки ҳамчун қисми як изҳорот истифода мешавад. Пеш аз он, ки агар изҳорот иҷро карда шавад, аҳамияти "count" ба арзиши "5" таъин карда мешавад. Ҳисобот агар пас аз тафтиш санҷида шавад, ки арзиши "шумора" 5 "5" аст. Агар чунин бошад, изҳороти байни калимаҳои калимаҳои "then" ва "fi" иҷро карда мешаванд, ба шарте, ки ҳар як изҳорот пас аз эъломия иҷро карда шаванд. Калимаи калимаи "fi" "агар" бозгашт карда шавад. Забони скрипт ба ин анҷуман барои истифода бурдани хотираи мураккаб, чунин баёнот ё ҳолатҳои изофӣ истифода мешавад.

Дар "echo" баёнияи он, дар ин ҳолат, арзиши тағйирёбии "санҷиш", ба равзанаи терминал. Нишондиҳии рамзи байни калимаҳои калимаи ибтидоӣ хонданро беҳтар мекунад, аммо зарур нест.

Агар шумо як вазъият дошта бошед, ки ягон коди рамзро танҳо агар шарт нест, шумо метавонед калимаи калимаи "else" -ро дар баёнияи зерин мисол оваред:

count = 5 агар [$ count == 5] пас гиред "$ count" else echo "count 5 не"

Агар ҳолати "$ count == 5" рост бошад, система арзиши тағйирёбандаи "санҷиш" -ро чоп мекунад, вагарна он рақам "count 5 нест" -ро чоп мекунад.

Агар шумо хоҳед, ки дар байни шароитҳои гуногун фарқ кунад, шумо метавонед калимаи калимаи "elif" -еро, ки аз "else if" гирифтаед, дар мисоли ин мисол:

Агар [$ count == 5] пас санҷидашудаи "count 5" бошад, баъд [$ count == 6] echo "шумораш шаш аст" else echo "none of the above"

Агар "санҷиш" 5 "5" бошад, система чоп мекунад "count 5". Агар "санҷиш" 5 "5" бошад, вале "6" бошад, система "санаи 6" -ро чоп мекунад. Агар ин "5" ва "6" бошад, система "ҳеҷ яке аз боло" -ро чоп намекунад.

Тавре ки шумо метавониста шудаед, шумо метавонед як қатор "алиф" -ро дошта бошед. Намунаи дорои шароитҳои гуногун "elif" хоҳад буд:

агар [$ count == 5] пас санҷидашудаи "count-five" -ро дар бар гирад [$ count == 6] echo "санаи 6" elif [$ count == 7] = 8] пас "echo" ҳаштум "elif [$ count == 9] пас" echo "шумори нӯҳ аст" echo "none of the above"

Тарзи дигари компютерӣ барои навиштани чунин изҳоротҳо бо шароитҳои гуногун ин усули парванда мебошад . Он дар якҷоягӣ бо ифодаи якхела бо матнҳои гуногун "elif" фаъолият мекунад, вале дақиқтар аст. Масалан, порчаи дар боло овардашуда метавонад бо калимаи "case" нависед:

case "$ count" дар 5) echo "шумора панҷ аст"; 6) echo "санаи 6"; 7) echo "ҳафтум аст"; 8) echo "шумори ҳашт"; 9) echo "ҳисоб 9" аст; *) echo "ҳеҷ як аз боло" нест

If-statements аксар вақт дар дохили эксклюзивҳо ё ҳангоми даврзанӣ дар ин мисол истифода мешаванд:

1 = (санаи ++)), агар пас аз [$ count == 5] пас идома дихед $ "count echo finished echo

Шумо инчунин метавонед, агар изҳорот дошта бошед. Соддатар аст, агар баёнот бошад: агар ... then ... else ... if ... then ... fi ... fi. Бо вуҷуди ин, агар баёнот бо мураккабии худфиребӣ ниёз дорад.

Ба назар гиред, ки чӣ тавр ба мубоҳисаҳои чопшуда , ки чӣ гуна истифода бурдани шароитҳоро барои коркарди параметрҳои аломати фармоишӣ нишон медиҳад, нигаред.

Шабакаи пӯст низ сохторҳои дигари барномасозӣ, ба монанди ҷӯйборҳо , дарозӣ ва арифметикӣ .