Kuidas kasutada BASH-i silmuse jaoks



Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

Üks põhilisi nippe bash-skriptide koostamisel hõlmab tsükli loomist, et saaksite teatud ülesande mitu korda automaatselt täita. Lõpuks jõuab silmus etteantud testitingimusesse ja lakkab ootamatult teostamast. Sellised aasad toimivad suurepäraselt nii Linuxis kui ka macOS-is bashis, samuti Windows 10 sees olevas bashi kestas ja isegi FreeBSD erinevates kestades. Loomulikult võite mis tahes tsüklisse kirjutada mis tahes käsu, mida soovite, ja jätkata mis tahes protsessi soovitud aja jooksul. Ehkki kirjutame mõned väga lihtsad tsüklid, saate nende oskuste abil kirjutada mis tahes tüüpi skripte, mida soovite.



Skripti kirjutamise alustamiseks on palju võimalusi, kuid selle arutelu jaoks eeldame, et olete avanud käsuviiba kas otsides Dashilt terminali, klõpsates seda menüüdes KDE, MATE, LX või Whisker või hoides samal ajal all Ctrl, Alt ja T. Kuigi me arutame toimetajatena vi / vimi ja nanot, on see, millist redaktorit kasutada, üsna isiklik küsimus ja võite töötada kõigega, millega tunnete end mugavalt.



1. meetod: kuni silmuseni

Võib-olla on bashi kõige põhilisem silmus kuni silmus. See jätkab käskude täitmist seni, kuni teie seatud testtingimus saab tõeks. Oletame, et olete kasutanud kas nano või vi olematu faili nimega till.sh avamiseks ja olete valmis sellesse värsket teksti sisestama. Valmistame teie terminalis lihtsalt midagi, mis loeb 20-ni, et see oleks kõigepealt lihtne.



Kõigepealt tippige järgmine:

#! / bin / bash

n = 0



kuni [$ n -gt 20]

tegema

kaja $ n

((n ++))

tehtud

Kui kasutate nanot, salvestage see, hoides all Ctrl ja vajutades väljumiseks O ja lõpuks X. Vi kasutajad soovivad põgeneda, seejärel sisestage salvestamiseks ja sulgemiseks: wq.

Järgmine tüüp chmod + x kuni Loop käsku, et see oleks käivitatav ja tippige ./untilLoop selle käivitamiseks. Kui see töötab, prindib silmus teie terminalis uusi numbreid, kuni muutuja n saab väärtuseni 20.

Muide, esimene rida ütleb teie keskkonnale, millise kesta nende skriptidega töötades laadida. Mõned programmeerijad soovitavad alati kasutada #! / Bin / sh, et skript järgiks teatavaid POSIX-i standardeid, kuid nende lihtsate skriptide puhul ei tohiks enamikus kaasaegsetes süsteemides töötada.

2. meetod: Loopi jaoks

A for loop heidab pilgu kõigile antud loendi üksustele ja täidab seejärel selles loendis etteantud käskude komplekti. Valmistame välja ühe, mis prindib välja mõned operatsioonisüsteemide nimed, kuid peame veel kord meeles, et võite sellega soovi korral midagi teha.

Sisestage kas nano forLoop või me aasime käsureal ja alustage selle järgmise skripti sisestamist. Vi kasutajad peavad enne seda sisestama sisestusrežiimi.

#! / bin / bash

unices = ’GNU / Linuxi FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwini HP-UX Minix’

unixi jaoks $ unices'is

tegema

kaja $ unix

tehtud

Salvestage fail uuesti, kasutades kas Ctrl + O ja seejärel Ctrl + X meetodit nanos või Esc, seejärel: meetod wq enne käsu väljastamist chmod + x forLoop et see oleks käivitatav. Kui olete seda teinud, käivitage see tippides ./loopi jaoks kohe. For loop sunnib kajakäsku toimima korduvalt muutuja unices iga elemendi juures. Pikkade protsesside automatiseerimiseks võite selle loendi veel kord asendada mis tahes argumendiga ja asendada kaja mis tahes käsuga.

3. meetod: samas aas

Hakake redigeerima kolmandat faili nimega whileLoop, kasutades nano, vi või mis tahes muud toimetajat, mida soovite kasutada. Kui eelistate kasutada graafilist tekstiredaktorit, võite seda teha ka kõigi nende projektidega, kui panete faili samasse kataloogi, kus töötate käsuviiba sees .

Selle faili sisse soovite lisada read:

#! / bin / bash

n = 0

samas [$ n -le 20]

tegema

kaja $ n

((n ++))

tehtud

Salvestage fail samamoodi nagu teiste salvestanud ja seejärel väljuge tekstiredaktorist. Kui olete väljunud, väljastage käsk chmod + x whileLoop et saaksite selle käivitada ja seejärel käivitada ./ whileLoop selle käivitamiseks. Näete sama väljundit, mis tuli välja esimese meetodi skripti tillLoop kaudu, kuna see loeb vahemikus 0 kuni 20 sekundi murdosa jooksul.

See on suurepärane näide asjaolust, et alati, kui töötate sellisel viisil silmustega, on rohkem kui üks viis. Ehkki selleks pole tehniliselt ühtegi valet viisi, kohtate tõenäoliselt skripti autoreid, kes väidavad, et peaksite kirjutama skriptid lähemale viisile, kuidas C programmeerimiskeel asju teeb, või alternatiivina võivad teised soovitada, et te ei peaks seda tegema. Ausalt öeldes on probleemi lahendamiseks tõenäoliselt palju õigeid viise.

Kui olete nendega harjutanud, võite oma skriptid kustutada.

3 minutit loetud