Hur man använder BASH för Loop



Prova Vårt Instrument För Att Eliminera Problem

Ett av de mest grundläggande knep när man skapar bash-skript innebär att man gör en loop så att man kan få en viss uppgift att utföras automatiskt flera gånger. Så småningom kommer slingan att nå ett förutbestämt testvillkor och plötsligt sluta köra. Slingor som dessa fungerar perfekt i bash på Linux och macOS samt bash-skalet i Windows 10 och till och med de olika skalen i FreeBSD. Naturligtvis kan du skriva vilket kommando du helst föredrar i vilken loop som helst och hålla vilken process som helst som du vill. Medan vi kommer att skriva några extremt enkla slingor kan du använda dessa färdigheter för att författa alla typer av skript du vill ha.



Det finns många sätt att börja skriva ett manus, men för den här diskussionen antar vi att du har öppnat en kommandotolk antingen genom att söka efter terminal på Dash, genom att klicka på den i menyer KDE, MATE, LX eller Whisker eller genom att hålla ner Ctrl, Alt och T samtidigt. Medan vi diskuterar vi / vim och nano som redaktörer, är frågan om vilken redaktör du ska använda ganska personlig och du kan arbeta med vad du än känner dig bekväm med.



Metod 1: Fram till slingan

Den kanske mest grundläggande slingan i bash är till-slingan. Det kommer att fortsätta att utföra kommandon tills testvillkoret du ställer in blir sant. Vi antar att du har använt antingen nano eller vi för att öppna en obefintlig fil med namnet till.sh och är redo att infoga ny text i den. Vi gör bara något som räknas till 20 i din terminal för att göra det enkelt först.



Börja med att skriva in följande:

#! / bin / bash

n = 0



tills [$ n -gt 20]

do

eko $ n

((n ++))

Gjort

Om du använder nano sparar du den genom att hålla ner Ctrl och sedan trycka på O och slutligen på X för att avsluta. Användare av vi vill trycka på escape och skriv sedan: wq för att spara och avsluta.

Nästa typ chmod + x tillsLoop vid uppmaningen att göra den körbar och skriv sedan ./untilLoop att köra den. När den har körts kommer slingan att fortsätta skriva ut nya nummer på din terminal tills n-variabeln blir 20.

Förresten, den första raden berättar för din miljö vilket skal du ska ladda upp när du arbetar med dessa skript. Vissa programmerare rekommenderar bara att använda #! / Bin / sh för att säkerställa att ditt skript följer vissa POSIX-standarder, men dessa enkla skript borde inte ha några problem att köra på de allra flesta moderna system.

Metod 2: The for Loop

En for loop tar en titt på varje objekt i en viss lista och utför sedan en viss uppsättning kommandon på listan. Vi kommer att göra ett som skriver ut några operativsystemsnamn men kom ihåg igen att du kan göra vad som helst med detta om du vill.

Skriv antingen nano forLoop eller vi forLoop vid kommandotolken och börja skriva in följande skript. Användare av vi måste gå in i infogningsläge innan de gör det.

#! / bin / bash

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

för unix i $ unices

do

echo $ unix

Gjort

Spara filen igen med antingen Ctrl + O och sedan Ctrl + X-metoden i nano eller Esc sedan: wq-metoden i vi innan du utfärdar kommandot chmod + x förLoop för att göra det körbart. När du har gjort, kör den genom att skriva ./forLoop vid uppmaningen. For-loop tvingar ekokommandot att arbeta på var och en av objekten i enhetsvariabeln i tur och ordning. Du kan än en gång ersätta listan med vilket argument som helst och ersätta ekot med valfritt kommando för att automatisera långa processer.

Metod 3: While Loop

Börja redigera en tredje fil som heter whileLoop med nano, vi eller vilken annan redaktör du vill använda. Om du föredrar att använda en grafisk textredigerare kan du faktiskt göra det lika bra med något av dessa projekt så länge du ser till att placera filen i samma katalog som du arbetar inifrån kommandotolken .

Inne i den här filen vill du lägga till raderna:

#! / bin / bash

n = 0

medan [$ n -le 20]

do

eko $ n

((n ++))

Gjort

Spara filen på samma sätt som du sparade de andra och avsluta sedan textredigeraren. När du har avslutat ger du kommandot chmod + x whileLoop så att du kan köra den och sedan köra ./ whileLoop att köra den. Du ser samma utdata som kom ut till tillLoop-skriptet från den första metoden eftersom det räknas från 0 till 20 på mer än troligtvis en delad sekund.

Detta är en utmärkt demonstration av att det finns mer än ett sätt att göra saker när du arbetar med öglor på detta sätt. Även om det tekniskt sett inte finns något fel sätt att göra det, kommer du troligen att stöta på manusförfattare som hävdar att du borde skriva dina manus närmare hur C-programmeringsspråket gör saker eller alternativt kan andra föreslå att du inte ska göra detta. Ärligt talat finns det förmodligen många korrekta sätt att lösa ett problem.

Ta gärna bort dina skript när du är klar med att träna med dem.

3 minuter läst