Shell Scripting - For Loops
Indholdsfortegnelse:
- Standard Bash For Loop
- Slynge over strenge
- Slynge over et talinterval
- Slynge over matrixelementer
- C-stil Bash til loop
- Brud og fortsæt erklæringer
- Break Statement
- Fortsæt erklæring
- Eksempler på bash
- Omdøbning af filer med mellemrum i filnavnet
- Ændring af filtypenavnet
- Konklusion
Loops er et af de grundlæggende begreber i programmeringssprog. Loops er praktisk, når du vil køre en række kommandoer igen og igen, indtil en bestemt betingelse er nået.
I scripting-sprog som Bash er løkker nyttige til at automatisere gentagne opgaver.
Der er tre grundlæggende loop-konstruktioner i Bash-scripting, til loop, while loop og indtil loop.
I denne tutorial vil vi dække det grundlæggende om for loops i Bash. Vi vil også vise dig, hvordan du bruger pausen og fortsætter udsagn til at ændre strømmen af en løkke.
Standard Bash For Loop
For-loop-iterenerer over en liste over elementer og udfører det givne sæt kommandoer.
Bash for loop har følgende form:
for item in do done
Listen kan være en række strenge adskilt af mellemrum, et antal numre, output fra en kommando, en matrix og så videre.
Slynge over strenge
I eksemplet nedenfor itererer loopen over hvert element på listen over strenge, og det variable
element
indstilles til det aktuelle emne.
for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done
Løkken producerer følgende output:
Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium
Slynge over et talinterval
Du kan bruge sekvensudtrykket til at specificere et interval af tal eller tegn ved at definere et start og slutpunkt for området. Sekvensudtrykket har følgende form:
{START..END}
I eksemplet nedenfor vil løkken iterere gennem alle tal fra 0 til 3.
for i in {0..3} do echo "Number: $i" done
Number: 0 Number: 1 Number: 2 Number: 3
Fra Bash 4 er det også muligt at specificere et trin, når man bruger intervaller. Udtrykket har følgende form:
{START..END..INCREMENT}
for i in {0..20..5} do echo "Number: $i" done
Number: 0 Number: 5 Number: 10 Number: 15 Number: 20
Slynge over matrixelementer
Du kan også bruge for-loop til at iterere over en række elementer:
I eksemplet nedenfor definerer vi en matrix
BOOKS
og itererer over hvert element i arrayet.
BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done
Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby
C-stil Bash til loop
Syntaks for C-stil til loop har følgende form:
for ((INITIALIZATION; TEST; STEP)) do done
INITIALIZATION
delen udføres kun én gang, når loopen starter. Derefter evalueres
TEST
delen. Hvis den er falsk, afsluttes for loop. Hvis
TEST
er sandt, udføres kommandoer inden i kroppen til for loop, og
STEP
delen opdateres.
I den følgende kode viser loopen ved at initialisere
i = 0
, derefter inden hver iteration kontrollerer, om
i ≤ 10
. Hvis det er sandt, udskrives det den aktuelle værdi af
i
og
i
med 1 (
i++
), ellers slutter loopen.
for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done
Løkken itererer 1001 gange og producerer følgende output:
Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000
Brud og fortsæt erklæringer
Sætningerne om pause og fortsættelse kan bruges til at kontrollere udførelsen til loop
Break Statement
Bruddeklarationen afslutter den aktuelle sløjfe og overfører programkontrol til det udsagn, der følger den afsluttede erklæring. Det bruges normalt til at afslutte sløjfen, når en bestemt betingelse er opfyldt.
I det følgende eksempel bruger vi if-sætningen til at afslutte udførelsen af løkken, når den nuværende itererede vare er lig med 'Lithium'.
for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'
Element: Hydrogen Element: Helium All Done!
Fortsæt erklæring
Fortsætningsangivelsen forlader den aktuelle iteration af en løkke og overfører programstyring til den næste iteration af løkken.
I det følgende eksempel itereres vi gennem et antal numre, og når det nuværende itererede emne er lig med '2', vil fortsætningsangivelsen medføre, at eksekveringen vender tilbage til starten af loopen og fortsætter med den næste iteration.
for i in {1..5}; do if]; then continue fi echo "Number: $i" done
Number: 1 Number: 3 Number: 4 Number: 5
Eksempler på bash
Omdøbning af filer med mellemrum i filnavnet
Følgende eksempel viser, hvordan man bruger Bash til loop til at omdøbe alle filer i det aktuelle bibliotek med et mellemrum i dets navne ved at erstatte plads til understregning.
for file in *\ *; do mv "$file" "${file// /_}" done
Lad os fordele koden linje for linje:
- Den første linje opretter en for-loop og iterates gennem en liste over alle filer med et mellemrum i navnet. Udtrykket
*\ *
opretter listen. Den anden linje gælder for hvert element på listen og flytter filen til en ny, og erstatter pladsen med en understregning (_
). Delen${file// /_}
bruger shell-parameterudvidelsen til at erstatte et mønster i en parameter med en streng.done
angiver slutningen af loop-segmentet.
Ændring af filtypenavnet
Følgende eksempel viser, hvordan du bruger Bash til loop til at omdøbe alle filer, der slutter med.jpeg i det aktuelle bibliotek ved at erstatte filtypenavnet fra.jpeg til.jpg.
for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done
Lad os analysere koden linje for linje:
- Den første linje opretter en for-loop og itereres gennem en liste over alle filer, der slutter med '.jpeg'. Den anden linje gælder for hvert element på listen og flytter filen til en ny, der erstatter '.jpeg' med '.jpg'.
${file%.jpeg}
at fjerne delen '.jpeg' fra filnavnet ved hjælp af udvidetdone
indikerer slutningen på loop-segmentet.
Konklusion
Nu skal du have en god forståelse af, hvordan du bruger bash til loop til at itereere gennem lister.
bash loop terminalMange virksomheder har brugt Facebook til at trække deres fan base, kunder og potentielle kunder sammen. Facebook giver værktøjer, der giver brugerne mulighed for at afspille videoer og tillade virksomheder at sende marketingbeskeder direkte til målrettede målgrupper. En af de største fordele ved at bruge Facebook til erhvervslivet er dens virale virkning. Hvis nogen bliver fan af din side, sendes en besked til alle de pågældende venner, der fortæller dem om det, og giver en god kanal til at få

Selv Hvis din virksomhed ikke er på Facebook, kan du se, hvordan Target, Microsoft og President Obama udnyttede Facebooks magt til at tiltrække titusinder af fans, skubbe deres mærke og produkter og i sidste ende drage fordel af disse strategier.
Jeg ser frem til Microsofts browserbaserede udgave af Office. Mens virksomheden ikke fører udviklingen til skybaserede apps, er det helt sikkert midt i bevægelsen. Microsofts suite vil blive frigivet næste år, men du kan spare penge ved at få adgang til online office-stil apps lige nu. In-browser produktivitets suiter er typisk gratis. Plus, jeg kan godt lide dem til lette systemer, f.eks. Netbooks, hvor Microsofts skrivebordssuite føles for opustet til selv at skrive.

Google Docs tilbyder gratis browserbaserede produktivitetsprogrammer med grundlæggende funktioner, der matcher Office-apps. Mens jeg ofte bruger den service, er jeg især interesseret i Zoho-pakken. Dets apps omfatter en renere grænseflade og et par funktioner ud over Googles muligheder.
Bash mens løkke

Loops er et af de grundlæggende begreber i programmeringssprog. Loops er praktisk, hvis du vil køre række kommandoer igen og igen. Denne tutorial forklarer det grundlæggende ved, at løkker i Bash samt pauserne og fortsætter udsagn for at ændre strømmen af en løkke.