WHILE-Loops እንዴት እንደሚፃፍ

ትዕዛዞች, አገባብ, እና ምሳሌዎች

ወደ ስክሪፕት ፋይል በመጻፍ እና ከዚያ በማስኬድ የቅደም ተከተል ቅደም ተከተሎችን ማስፈጸም ይችላሉ.

የስክሪፕት ፋይል በቀላሉ የጽሑፍ ፋይል ነው, ብዙውን ጊዜ ከትዕዛዝ መስመሩ ( ሼል ) ሊተገበሩ የሚችሉ ተከታታይ መመሪያዎች የያዘ የ .SH ፋይል ቅጥያ.

የበራፕ ምሳሌዎች

ከታች ለተወሰነ የጊዜ ቅደም ተከተል ምሳሌ ነው. ሲሰረዝ, ይህ የስክሪፕት ፋይል በማያ ገጹ ላይ ያሉትን ቁጥሮች ከ 1 እስከ 9 ይዘጋል. ጥፍሩ-መግለጫው ከ-- loop ከሚሰነዘረው የመልቀቂያ ሁኔታ ይልቅ የበለጠ የመተጣጠፍ ችሎታ ይሰጥዎታል.

#! / bin / bash count = 1 while [$ count -le 9] "$ count" የእንቅልፍ 1 ((ቆጠራ ++) ድምጽ ማሰማት ተከናውኗል

ለምሳሌ, የቀዳሚውን ስክሪፕት የእድገት ዓረፍተ ጽሑምን "((++ ++)) በመተው" ቀጥ ያለ አጻጻፍ አኳኋን ማድረግ ይችላሉ:

#! / bin / bash count = 1 while [$ count -le 9] "$ count" የእንቅልፍ ማከናወን 1 ተከናውኗል

"የእንቅልፍ 1" መግለጫ በእያንዳንዱ ማስታወስ ላይ ለ 1 ሰከንድ ያህል ቆም ይላል. ሂደቱን ለማቋረጥ Ctrl + C የቁልፍ ሰሌዳ አቋራጩን ይጠቀሙ.

ኮርሱን እንደ ሁኔታው ​​በማስቀመጥ ዘላቂውን ቅልል መፍጠር ይችላሉ:

#! / bin / bash count = 1 while: echo "$ count" 1 እንቅልፍ ((ቁጥር ++)) ተከናውኗል

በኹ-ጊዛ ውስጥ ያሉ በርካታ ሁኔታዎችን ለመጠቀም, ባለ ሁለት ካሬ ቅንፍ ቅጥርን መጠቀም አለብዎት:

count = 1 done = 0 while [[$ count -le 9] && [$ done == 0]] [$ count == 5] ካለ "$ count" የእንቅልፍ ቁጥር 1 ((ቆጠራ ++)). ከዚያ $ done = 1 fi ተከናውኗል

በዚህ ስክሪፕት ውስጥ "አከናውነው" ተለዋዋጭ በ 0 ላይ እንዲጀመር ይደረጋል, ከዚያም ቁጥሩ 5 ሲደርስ ወደ 1 ይቀየራል. የ "loop ሁኔታ" እንደሚጠቁመው "ቁጥር" ከዘጠኝ በታች እና "ተከናውኗል" እኩል ከሆነ ወደ ዜሮ. ስለዚህ ቁጥሮቹ ቁጥሮቹ 5 ሲሆኑ ጥግ ነጭው ይወጣል.

"&&" ማለት አመክንዮ እና "እና" || "ማለት ነው. ፍች "ወይም" ፍች "ማለት ነው.

ለትመላሎቹ "እና" እና "ወይም" በሁኔታ ውስጥ "የሚለወጥ አማራጭ" a "እና" -o "ከአንዴ አደባባዮች ጋር ነው. ከላይ የተጠቀሰው ሁኔታ:

[[$ count -le 9] && [$ done == 0]]

... ሊፃፍ እንደ:

[$ count -le 9] -a [$ done == 0]

የጽሑፍ ፋይልን ለማንበብ ብዙውን ጊዜ ከግዜ በኋላ በተደጋገሙ ይከናወናል. በሚከተለው ምሳሌ ውስጥ, የቦሽ ህትመት "inventory.txt:" በሚለው ፋይል መስመር ይዘቱ መስመር በኩል ይዘቱን ያነባል.

FILE = inventory.txt exec 6

የመጀመሪያው መስመር የግቤት ፋይሉን ወደ «FILE» ተለዋዋጭ ይሰጥበታል. ሁለተኛው መስመር "መደበኛ ግብዓት" በፋይል መግለጫው "6" ያስቀምጣል (በ 3 እና 9 መካከል የሆነ እሴት ሊሆን ይችላል). ይህም "መደበኛ ግብአት" ወደ ስክሪፕቱ መጨረሻ ወደ "ገጹ" ("0") ወደነበሩበት ሊመለስ ይችላል ("exec 0" የሚለውን መግለጫ ይመልከቱ) በሦስተኛ መስመር ላይ የግቤት ፋይሉ የፋይል ገላጭ "0" ለ " ለ "" መደበኛ ግብዓት የ "ተነባሽ" ዓረፍተ ሐሳብ በእያንዳንዱ ማስታወቂያን ላይ መስመርን ያነባል እና "line1" ተለዋዋጭን ይሰጥበታል.

የአንድ-አዙር-ዙር ጊዜ ያለፈ ጊዜ እንዲወጣ ለማድረግ የሚከተለውን የመሰረዝ መግለጫ መጠቀም ይችላሉ-

count = 1 done = 0 [$ count -le 9] "$ count" የእንቅልፍ ቁጥር 1 ((ቆጠራ ++)) ካስተካከል [$ count == 5] ከዚያም ከተፋጠነ የተጠናቀቀ ድምጽ ማሰማት ተጠናቅቋል

የክርክር መግለጫው የፕሮግራም አፈፃፀምን እስከ መጨረሻው እያዘለለለ ይቀጥላል እና የሚከትሉትን ዓረፍተ ነገሮች ያጠናቅቃል. በዚህ ሁኔታ, "ድምጽ ማሰማት ተጠናቋል."

በሌላ በኩል የቀጣዩ መግለጫ ቀሪው የበግ አረፍተ-ነገር መግለጫውን ወደ ቀጣዩ ድርድር ብቻ ይዘልላል:

count = 1 done = 0 [$ count -le 9] ሲያነጥር 1 ((ቆጠራ ++)) ከሆነ [$ count == 5] ከሆነ የድምጽ ስርጭት "$ count" ን ቀጥል echo ተጠናቋል

በዚህ ጉዳይ ላይ "ቀጥል" የሚለው መግለጫ ተለዋዋጭ "ቁጥር" 5 ነው. ይህ ማለት በሚቀጥለው ዓረፍተ ነገር (echo "$ count") በዚህ አይተነው ላይ አይተገበርም (የ "ቆጠራ" እሴት 5).