Mmene Mungalembe Bash WHILE-Loops

Malamulo, Syntax, ndi Zitsanzo

Mungathe kuchita malamulo amodzi mwa kuwalembera mu fayilo ya script ndikuyimbira.

Fayilo ya script imangokhala fayilo ya mauthenga, kawirikawiri ndi extension .SH yowonjezera, yomwe ili ndi ndondomeko ya malangizo omwe angathenso kuchitidwa kuchokera ku mzere wa lamulo ( chipolopolo ).

Pamene Zidzakhala Zitsanzo

M'munsimu muli chitsanzo cha kanthawi kochepa. Mukaphedwa, fayiloyi idzasindikiza nambala 1 mpaka 9 pazenera. Mawuwa akukuthandizani kusintha kwakukulu kuti muwonetsetse chiwonongeko chotsalira kusiyana ndi kondomu .

#! / bin / bash count = 1 pamene [$ count -le 9] amalembetsa "$ count" kugona 1 ((count ++)) yopangidwa

Mwachitsanzo, mungapange script yapitayi kukhala yosasunthika posiya mawu owonjezera "((count ++))":

#! / bin / bash count = 1 pamene [$ count -le 9] amalephera "$ count" kugona 1 kochitidwa

Mawu oti "ogona 1" akuyimitsa kuchitidwa kwa mphindi imodzi payeso iliyonse. Gwiritsani ntchito njira yamakina ya Ctrl + C kuti muchotse ndondomekoyi.

Mukhozanso kukhazikitsa chisamaliro chosatha mwa kuika koloni ngati chikhalidwe:

#! / bin / bash count = 1 panthawi: onetsetsani "$ count" kugona 1 ((kuwerengetsa ++))

Kuti mugwiritse ntchito maulendo angapo panthawi yeniyeni, muyenera kugwiritsa ntchito mndandanda wazitsulo ziwiri:

chiwerengero = 1 chitani = 0 pamene [[$ count -le 9] && [$ done == 0]] liwonetsani "$ count" kugona 1 ((kuwerengera ++) ngati [$ count == 5]; ndiye ndalama zachitidwa = 1 zatha

Palembedwe ili, "kusintha" kotembenuzidwa kumayambika ku 0 ndipo kenaka ku 1 pamene chiwerengerocho chifika kufika 5. Chikhalidwe chakutayika chimanena kuti nthawi yowonjezera idzapitirizabe ngati "kuwerengera" kosachepera 9 ndi "kuchitidwa" kuli kofanana mpaka zero. Choncho malupu amachoka pamene chiwerengerocho chikufanana ndi 5.

"&&" ikutanthawuza "ndi" ndi "|" amatanthauza zomveka "kapena".

Njira yotsatila yowonjezera "ndi" ndi "kapena" muzochitika "-ndi" ndi "-o" ndi mabwalo osanjikizana. Mkhalidwe wapamwambawu:

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

... zikhoza kulembedwa ngati:

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

Kuwerenga fayilo ya malemba kumachitika ndi kanthawi kochepa. Mu chitsanzo chotsatira, bash script amawerenga zomwe zili m'ndondomeko ndi mzere wa fayilo yotchedwa "inventory.txt:"

FILE = kufufuza.txt exec 6

Mzere woyamba umatanthawuza dzina la mafayilo ku "FILE". Mzere wachiwiri umasunga "zowonjezera zowonjezera" mu fayilo descriptor "6" (zikhoza kukhala phindu lililonse pakati pa 3 ndi 9). Izi zachitika kotero kuti "zowonjezera" zitha kubwezeretsedwa ku fayilo yofotokozera "0" kumapeto kwa script (onani mawu akuti "exec 0 Mu mzere wachitatu fayilo yowonjezera imapatsidwa fayilo descriptor" 0, "yomwe imagwiritsidwa ntchito kuti muyambe kuikapo. Mawu akuti "kuwerengera" amatha kuwerenga mzere kuchokera pa fayilo pazitsulo iliyonse ndikuziyika ku kusintha kwa "line1".

Kuti mutuluke msangamsanga kanthawi kochepa, mungagwiritse ntchito mawu omveka monga awa:

chiwerengero = 1 chitani = 0 pamene [$ count -le 9] amalembetsa "$ count" kugona 1 ((kuwerengera ++) ngati [$ count == 5] ndiye kuswa fomu yomaliza yatha

Mawu omveka akudutsa pulogalamu yomaliza mpaka kumapeto pamene akuseka ndi kutulutsa mawu alionse omwe akutsatira. Pankhaniyi, mawu akuti "echo anamaliza."

Komabe, mawu opitilirawo amachoka pafupipafupi pa nthawi yonseyi pomwe amatha kuthamanga pazomwe akuyendetsa.

chiwerengero = 1 anachita = 0 pamene [$ count -le 9] mugone 1 ((kuwerengera ++) ngati [$ count == 5] ndiye pitirizani kufotokozera "$ count" yomwe yatha

Pachifukwa ichi, mawu oti "pitirizani" akuchitidwa pamene "chiwerengero" choyipa chikufikira 5. Izi zikutanthawuza kuti mawu otsatira (echo "$ count") sali kuchitidwa pamtundu uwu (pamene mtengo wa "count" ndi 5).