Баш ЖАТЫП-Loops жазуу керек

Буйруктар, синтаксиси жана үлгүлөр

Сиз скрипт делосуна аларды жазуу менен буйруктарынын ырааттуулугун аткарууга жана аны иштеп болот.

Эреже катары, ошондой эле буйрук сабында (аткарыла турган көрсөтмөлөрдү ырааттуулугун камтыйт .sh билэ узартуу менен бирөө, жөн гана текст билэ кабыгы ).

Loop мисалдар жатканда

Төмөндө бир да жок бир мисалы болуп саналат. өлтүргөндөн кийин, бул жазуусу билэ экрандан 9 аркылуу САНДАР 1 басып калат. Эми-билдирүү сага караганда токтотуу шартын көрсөтүү үчүн ийкемдүүлүктү берет үчүн курс .

#! / бин / Баш саны = 1, ал эми [$ -le 9 саны] "$ санап" уктап кайталоого эмне 1 ((саны ++)) аткарылган

Мисалы, мурунку жазуусу өсүш арызды жетишсиздик менен чексиз укурук "((саны ++))" болушу мүмкүн:

#! / бин / Баш саны = 1, ал эми [$ -le 9 саны] "$ саны" уйку 1 аткарылган шайкеш келбейт

"Уйку 1" отчет ар бир кадамынын 1 секундасына үчүн өлүм табат. Ctrl + C колдонуу клавиатура жараянын токтотууга кыска.

Сиз ошондой эле шарт катары курстар коюу менен чексиз кайталануусу пайда болот:

! # / бин / Баш саны = 1 болсо: "$ санап" кошулат да уйку 1 ((саны ++)) аткарылган

эми-илмегинде бир нече шарттарды колдонуу үчүн, эки чарчы кашаа белгисин колдонуу керек:

саны = 1 = 0 кылган, ал эми [[$ -le 9] && [0 == $ кылган] саны] "$ санап:" Эмесе, эмне уктап 1 ((саны ++)) болсо, [$ саны == 5]; анда $ = 1 Fi кылыш

Бул ариби менен +, өзгөрүлмө "кылган" саны кийин 1 0, анан коюуга демилгеленди 5. жеткен укурук шарты, ал эми укурук "эсептөө" сыяктуу улана берет деп айтылат: "кылган" тогуз кем барабар нөлгө барабар. Ошондуктан саны 5 барабар болгондо илмек чыгуу.

"&&" логикалык "дегенди билдирет, ошондой эле" жана "||" "Же" логикалык билдирет.

An альтернатива тили үчүн ноталык "жана" жана "же" шарттарда бир чарчы кашага менен "биригип" жана "епо" болуп саналат. Жогоруда шарт:

[-le 9 саны $ [] && [$ == кылган 0]]

... деп сынга алган:

[$ -le 9 саны] биригип [0 == $ кылган]

тексттик окуу адатта бир эле учурда алкагы менен ишке ашырылат. төмөнкүдөй бир мисал менен Баш жазуусу деп аталган Билэ аркан менен көрүү линиясын окуп "inventory.txt:"

FILE = inventory.txt Шмидт 6

Биринчи линия "FILE" өзгөрмөгө киргизүү билэ атын ыйгарып берген. экинчи сап билэ баалоо боюнча "стандарттык киргизүү" куткарат "6" (ал 3 жана 9 ортосунда эч кандай мааниси болушу мүмкүн). Бул "стандарттык киргизүү" сыпаттаманы "0" ариби (билдирүү "Exec 0 3-сапта киргизүү билэ сүрөттөгүч берүүгө дайындалган" көрө-жылдын акырына карата 0, "колдонула турган берүүгө калыбына алышы үчүн жасалат стандартты киргизүү үчүн. анда айтылгандай, "окуу", ар бир кадамынын боюнча иштин бир сапты окуп жана "line1" өзгөрмөлүү аны бекитет.

шашылып эми-укурук чыгуу максатында, бул сыяктуу үзүлүшүн сөздөрдү колдоно алат:

саны = 1 = 0 кылган, ал эми [$ -le 9 саны] "$ санап" уктап кайталоого эмне 1 ((саны ++)) [$ саны == 5] Анан Fi Аякталды Эхо кылган брейк, анда

үзүлүшүн билдирүү тийиши акырына чейин программасы аткарууну дейди, жана аны ар кандай билдирүүлөрдү ашырат. Бул учурда, чыгып сүйлөөлөр "деген берилбейт кошулушат."

Билдирүүдө, экинчи жагынан, азыркы кадамынын тийиши билдирүүсүндө гана калган дейди, жана кийинки түздөн-түз секирип ары:

саны = 1 = 0 кылган, ал эми [$ -le 9 саны] 1 ((саны ++)) [$ саны == 5] Анан Fi Эхо "$ санап," мындан ары да уруксат берилбейт Эхо кылган болсо уктап жатышат

Бул учурда, билдирүү өзгөрүлмө "саны" аткарылды "деп мындан ары да" 5. жетип Бул кийинки билдирет (Эхо "$ саны") бул кадамынын боюнча аткарылган эмес, ( "эсептөө" наркы 5 болгондо).