Sådan bruges BASH til Loop
Et af de mest grundlæggende tricks, når du laver bash scripts, indebærer at lave en loop, så du kan få en bestemt opgave automatisk udført flere gange. Til sidst kommer sløjfen til at nå en forudbestemt testtilstand og ophører pludselig med at udføre. Loops som disse vil fungere perfekt i bash på Linux og MacOS samt bash shell inde Windows 10 og endda de forskellige skaller i FreeBSD. Selvfølgelig kan du skrive uanset kommando du foretrækker i en loop og holde enhver proces i gang med den ønskede tid. Mens vi skriver nogle ekstremt enkle sløjfer, kan du bruge disse færdigheder til at forrette alle slags scripts, du gerne vil have.
Der er mange måder at starte med at skrive et script på, men for denne diskussion antager vi, at du har åbnet en kommandoprompt, enten ved at søge efter terminal på Dash, ved at klikke på den i menuerne KDE, MATE, LX eller Whisker eller ved at holde Ctrl, Alt og T nede samtidigt. Mens vi diskuterer vi / vim og nano som redaktører, er spørgsmålet om hvilken redaktør der skal bruges, helt personlig, og du kan arbejde med det, du har det godt med.
Metode 1: Den indtil Loop
Måske er den mest basale sløjfe i bash den indtil sløjfen. Det vil fortsætte henrettet kommandoer, indtil testbetingelsen du sætter bliver sand. Vi antager, at du har brugt enten nano eller vi til at åbne en ikke-eksisterende fil kaldet until.sh og er klar til at indsætte frisk tekst i den. Vi laver bare noget, der tæller til 20 i din terminal for at holde det let i starten.
Start med at indtaste følgende:
#! / Bin / bash
n = 0
indtil [$ n -gt 20]
gøre
ekko $ n
((N ++))
Færdig
Hvis du bruger nano, skal du gemme det ved at holde Ctrl nede og derefter trykke O og endelig X for at afslutte. Brugere af vi vil gerne presse undslippe og derefter skrive: wq for at gemme og afslutte.
Næste type chmod + x indtilLoop ved prompten for at gøre den eksekverbar og skriv derefter ./untilLoop for at køre den. Når den kører, vil sløjfen fortsætte med at udskrive nye tal ud på din terminal, indtil n-variablen kommer til 20.
Forresten fortæller den første linje dit miljø, som skal fylde op, når du arbejder med disse scripts. Nogle programmører anbefaler kun at bruge #! / Bin / sh for at sikre, at dit script overholder bestemte POSIX-standarder, men disse enkle scripts må ikke have noget problem at køre på langt de fleste moderne systemer.
Metode 2: The for Loop
A for loop tager et kig på hvert element i en given liste og udfører derefter et givet sæt kommandoer på denne liste. Vi laver en, der udskriver nogle operativsystemnavne, men husk igen, at du kunne gøre noget med dette, hvis du vil.
Indtast enten nano forLoop eller vi forLoop ved kommandoprompten og begynd at indtaste dette følgende script. Brugere af vi bliver nødt til at indtaste indsætningsmodus, før de gør det.
#! / Bin / bash
unices = 'GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix'
for unix i $ unices
gøre
echo $ unix
Færdig
PRO TIP: Hvis problemet er med din computer eller en bærbar computer / notesbog, skal du prøve at bruge Reimage Plus-softwaren, som kan scanne lagrene og udskifte korrupte og manglende filer. Dette virker i de fleste tilfælde, hvor problemet er opstået på grund af systemkorruption. Du kan downloade Reimage Plus ved at klikke her
Gem filen igen ved at bruge enten Ctrl + O og Ctrl + X-metoden i nano eller Esc derefter: wq-metoden i vi, før du udsteder kommandoen chmod + x forLoop for at gøre den eksekverbar. Når du har det, skal du køre det ved at skrive ./forLoop ved prompten. For-løkken tvinger ekkokommandoen til at arbejde på hver af elementerne i enhedens variabel igen. Du kan igen erstatte denne liste med ethvert argument og erstatte ekko med en kommando for at automatisere lange processer.
Metode 3: Mens Loop
Begynd at redigere en tredje fil kaldet whileLoop ved hjælp af nano, vi eller andre redaktører, du gerne vil bruge. Hvis du foretrækker at bruge en grafisk tekstredigerer, kan du faktisk også gøre det med nogen af disse projekter, så længe du sørger for at sætte filen i den samme mappe, som du arbejder inde fra kommandoprompten .
Inde i denne fil vil du tilføje linjerne:
#! / Bin / bash
n = 0
mens [$ n-20]
gøre
ekko $ n
((N ++))
Færdig
Gem filen på samme måde som du gemte de andre og derefter afslutte din teksteditor. Når du er gået ud, skal du udstede kommandoen chmod + x whileLoop, så du kan udføre den og derefter køre ./whileLoop for at køre den. Du kan se den samme output, der kom ud af indtilLoop-scriptet fra den første metode, da den tæller fra 0 til 20 i mere end sandsynligt et split sekund.
Dette er en fremragende demonstration af, at der er mere end en måde at gøre ting, når du arbejder med sløjfer på denne måde. Selv om der ikke er teknisk nogen forkert måde at gøre det på, vil du sandsynligvis komme på tværs af manuskriptforfattere, der hævder at du skal skrive dine scripter tættere på den måde C-programmeringssproget gør ting eller alternativt, andre kan foreslå, at du ikke skal gøre dette. Ærligvis er der sandsynligvis mange korrekte måder at løse et problem på.
Du er velkommen til at slette dine scripts, når du er færdig med at praktisere med dem.
PRO TIP: Hvis problemet er med din computer eller en bærbar computer / notesbog, skal du prøve at bruge Reimage Plus-softwaren, som kan scanne lagrene og udskifte korrupte og manglende filer. Dette virker i de fleste tilfælde, hvor problemet er opstået på grund af systemkorruption. Du kan downloade Reimage Plus ved at klikke her