Kuinka käyttää BASHia silmukkaan



Kokeile Instrumenttia Ongelmien Poistamiseksi

Yksi bash-komentosarjojen laatimisen perustavimmista temppuista on silmukan luominen, jotta tietty tehtävä voidaan suorittaa automaattisesti useita kertoja. Lopulta silmukka saavuttaa ennalta määrätyn testiolosuhteen ja lakkaa yhtäkkiä suorittamasta. Tällaiset silmukat toimivat täydellisesti bashissa Linuxissa ja macOSissa, Windows 10: n bash-kuoressa ja jopa FreeBSD: n eri kuoreissa. Luonnollisesti voit kirjoittaa haluamasi komennon mihin tahansa silmukkaan ja pitää prosessin käynnissä haluamasi ajan. Vaikka kirjoitamme erittäin yksinkertaisia ​​silmukoita, voit käyttää näitä taitoja haluamiesi komentosarjojen kirjoittamiseen.



Komentosarjan kirjoittamisen aloittaminen on monia tapoja, mutta tässä keskustelussa oletetaan, että olet avannut komentokehotteen joko etsimällä terminaalia viivasta, napsauttamalla sitä KDE-, MATE-, LX- tai Whisker-valikoissa tai pitämällä Ctrl, Alt ja T painettuna samanaikaisesti. Vaikka keskustelemme vi / vimistä ja nanosta toimittajina, kysymys siitä, mitä editoria on käytettävä, on henkilökohtainen asia, ja voit työskennellä kaiken kanssa, jonka kanssa tunnet olosi mukavaksi.



Menetelmä 1: Loop-silmukka

Ehkä kaikkein yksinkertaisin silmukka bashissa on asti-silmukka. Se jatkaa komentojen suorittamista, kunnes asettamasi testiehto tulee totta. Oletetaan, että olet käyttänyt joko nanoa tai vi-tiedostoa avaamaan olematon tiedosto nimeltä nimeltä.sh ja olet valmis lisäämään siihen uutta tekstiä. Teemme terminaalissasi vain jotain, joka laskee 20: een, jotta tämä olisi aluksi helppoa.



Aloita kirjoittamalla seuraava:

#! / bin / bash

n = 0



asti [$ n -gt 20]

tehdä

kaiku $ n

((n ++))

tehty

Jos käytät nanoa, tallenna se pitämällä Ctrl-näppäintä alhaalla ja painamalla O ja lopuksi X poistuaksesi. Vi: n käyttäjät haluavat työntää paeta ja kirjoittaa: wq tallentaa ja lopettaa.

Seuraava tyyppi chmod + x, kunnes Loop pyydettäessä tekemään siitä suoritettava ja kirjoita sitten ./untilLoop käyttää sitä. Kun se on suoritettu, silmukka jatkaa uusien numeroiden tulostamista päätelaitteestasi, kunnes muuttuja n saa arvon 20.

Muuten, ensimmäinen rivi kertoo ympäristölle, mikä kuori ladataan työskennellessäsi näiden komentosarjojen kanssa. Jotkut ohjelmoijat neuvovat aina käyttämään #! / Bin / sh -käyttöjärjestelmää varmistaakseen, että komentosarjasi noudattaa tiettyjä POSIX-standardeja, mutta näillä yksinkertaisilla komentosarjoilla ei pitäisi olla mitään ongelmia useimmissa nykyaikaisissa järjestelmissä.

Tapa 2: Silmukkaa varten

A for -silmukka tarkastelee kaikkia tietyn luettelon kohteita ja suorittaa sitten tietyn komennosarjan kyseisessä luettelossa. Teemme sellaisen, joka tulostaa joitain käyttöjärjestelmien nimiä, mutta pidä mielessä jälleen, että voisit tehdä mitä tahansa tämän kanssa, jos haluat.

Kirjoita joko nano silmukalle tai me silmukka komentokehotteessa ja ala kirjoittaa tätä seuraavaa komentosarjaa. Vi: n käyttäjien on siirryttävä lisäystilaan ennen kuin he tekevät niin.

#! / bin / bash

unices = ’GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix’

for unix in $ unices

tehdä

echo $ unix

tehty

Tallenna tiedosto uudelleen joko Ctrl + O- ja sitten Ctrl + X -menetelmällä nanossa tai Esc: n jälkeen: wq-menetelmä vi: ssä ennen komennon antamista chmod + x silmukka jotta se voidaan suorittaa. Kun sinulla on, suorita se kirjoittamalla . / silmukka pyydettäessä. For-silmukka pakottaa kaiku-komennon toimimaan vuorotellen kunkin unices-muuttujan kohteen kanssa. Voit vielä kerran korvata kyseisen luettelon millä tahansa argumentilla ja korvata kaikun kaikilla komennoilla automatisoimaan pitkät prosessit.

Menetelmä 3: Vaikka silmukka

Aloita muokkaamaan kolmatta tiedostoa nimeltä Loop käyttämällä nano-, vi- tai mitä tahansa muuta muokkainta, jota haluat käyttää. Jos haluat mieluummin käyttää graafista tekstieditoria, voit itse tehdä sen myös minkä tahansa näistä projekteista, kunhan asetat tiedoston samaan hakemistoon, jota työskentelet komentokehotteesta .

Tämän tiedoston sisälle haluat lisätä rivit:

#! / bin / bash

n = 0

kun taas [$ n -le 20]

tehdä

kaiku $ n

((n ++))

tehty

Tallenna tiedosto samalla tavalla kuin muutkin ja poistu sitten tekstieditorista. Kun olet poistunut, anna komento chmod + x whileLoop jotta voit suorittaa sen ja sitten suorittaa ./ whileLoop käyttää sitä. Näet saman tuloksen, joka tuli ensimmäisestä menetelmästä asti asti olevaan komentosarjaan, koska se laskee 0: sta 20: een todennäköisesti sekunnin murto-osassa.

Tämä on erinomainen osoitus siitä, että on olemassa useita tapoja tehdä asioita aina, kun työskentelet silmukoiden kanssa tällä tavalla. Vaikka teknisesti ei ole mitään väärää tapaa tehdä niin, olet todennäköisesti törmännyt käsikirjoittajiin, jotka väittävät, että sinun pitäisi kirjoittaa skriptisi lähemmäs tapaa, jolla C-ohjelmointikieli tekee asioita, tai vaihtoehtoisesti toiset saattavat ehdottaa, että sinun ei pitäisi tehdä tätä. Rehellisesti sanottuna on todennäköisesti monia oikeita tapoja ratkaista ongelma.

Voit vapaasti poistaa komentosarjat, kun olet harjoitellut niiden kanssa.

3 minuuttia luettu