Hvordan bruke BASH for Loop



Prøv Instrumentet Vårt For Å Eliminere Problemer

Et av de mest grunnleggende triksene når du skriver bash-skript, innebærer å lage en løkke slik at du kan få en bestemt oppgave utført automatisk flere ganger. Til slutt vil løkken nå en forhåndsbestemt testtilstand og plutselig slutte å utføre. Sløyfer som disse vil fungere perfekt i bash på Linux og macOS, samt bash-skallet i Windows 10 og til og med de forskjellige skallene i FreeBSD. Naturligvis kan du skrive hvilken kommando du foretrekker i en hvilken som helst sløyfe og holde prosessen i gang hvor lang tid du vil. Mens vi skal skrive noen ekstremt enkle sløyfer, kan du bruke disse ferdighetene til å lage hvilke slags skript du vil ha.



Det er mange måter å begynne å skrive et skript på, men for denne diskusjonen antar vi at du har åpnet en ledetekst enten ved å søke etter terminal på Dash, ved å klikke på den i KDE-, MATE-, LX- eller Whisker-menyene eller ved å holde nede Ctrl, Alt og T samtidig. Mens vi diskuterer vi / vim og nano som redaktører, er spørsmålet om hvilken redaktør du bruker, ganske personlig, og du kan jobbe med det du føler deg komfortabel med.



Metode 1: The indtil Loop

Kanskje den mest grunnleggende sløyfen i bash er til-sløyfen. Det fortsetter å utføre kommandoer til testtilstanden du angir blir oppfylt. Vi antar at du har brukt enten nano eller vi til å åpne en ikke-eksisterende fil kalt till.sh og er klar til å sette inn fersk tekst i den. Vi lager bare noe som teller til 20 i terminalen din for å holde dette enkelt først.



Start med å skrive inn følgende:

#! / bin / bash

n = 0



til [$ n -gt 20]

gjøre

ekko $ n

((n ++))

ferdig

Hvis du bruker nano, lagrer du den ved å holde Ctrl nede og deretter trykke O og til slutt X for å avslutte. Brukere av vi vil ønske å trykke på escape, og skriv deretter: wq for å lagre og avslutte.

Neste type chmod + x tilLoop når du blir bedt om å gjøre den kjørbar, og skriv deretter inn ./untilLoop å kjøre den. Når den kjører, vil løkken fortsette å skrive ut nye tall på terminalen din til n-variabelen blir 20.

Forresten, den første linjen forteller miljøet ditt hvilket skall du skal laste opp når du arbeider med disse skriptene. Noen programmerere anbefaler bare å bruke #! / Bin / sh for å sikre at skriptet ditt overholder visse POSIX-standarder, men disse enkle skriptene burde ikke ha noen problemer med å kjøre på de aller fleste moderne systemer.

Metode 2: The for Loop

En for loop tar en titt på hvert element i en gitt liste og utfører deretter et gitt sett med kommandoer på den listen. Vi lager en som skriver ut noen operativsystemnavn, men husk igjen at du kan gjøre noe med dette hvis du vil.

Skriv enten nano forLoop eller vi forLoop ved ledeteksten og begynn å skrive inn dette følgende skriptet. Brukere av vi må gå inn i innsettingsmodus før de gjør det.

#! / bin / bash

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

for unix i $ unices

gjøre

ekko $ unix

ferdig

Lagre filen igjen ved hjelp av enten Ctrl + O og deretter Ctrl + X-metoden i nano eller Esc deretter: wq-metoden i vi før du utsteder kommandoen chmod + x forLoop for å gjøre det kjørbart. Når du har gjort det, kjør det ved å skrive ./forLoop på forespørsel. For-loop tvinger ekkokommandoen til å jobbe på hvert av elementene i enhetsvariabelen etter tur. Du kan nok en gang erstatte listen med ethvert argument og erstatte ekko med hvilken som helst kommando for å automatisere lange prosesser.

Metode 3: Mens Loop

Begynn å redigere en tredje fil kalt whileLoop ved å bruke nano, vi eller hvilken som helst annen redaktør du vil bruke. Hvis du foretrekker å bruke en grafisk tekstredigerer, kan du faktisk gjøre det også med noen av disse prosjektene så lenge du sørger for å legge filen i samme katalog som du jobber fra inne i ledeteksten. .

I denne filen vil du legge til linjene:

#! / bin / bash

n = 0

mens [$ n -le 20]

gjøre

ekko $ n

((n ++))

ferdig

Lagre filen på samme måte som du lagret de andre, og avslutt deretter teksteditoren. Når du har avsluttet, utsteder du kommandoen chmod + x mens Loop slik at du kan utføre den og deretter kjøre ./ whileLoop å kjøre den. Du vil se den samme utgangen som kom ut av tillLoop-skriptet fra den første metoden, ettersom det teller fra 0 til 20 på mer enn sannsynlig et delt sekund.

Dette er en utmerket demonstrasjon av at det er mer enn en måte å gjøre ting på når du jobber med løkker på denne måten. Selv om det teknisk sett ikke er noen feil måte å gjøre det på, vil du sannsynligvis komme over manusforfattere som hevder at du bør skrive manusene nærmere måten C-programmeringsspråket gjør ting, eller alternativt kan andre foreslå at du ikke bør gjøre dette. Ærlig talt er det sannsynligvis mange riktige måter å løse et problem på.

Slett gjerne manusene dine når du er ferdig med å øve på dem.

3 minutter lest