Bash “For” -sløyfe for å iterere gjennom en matrise

Bash “For” -sløyfe for å iterere gjennom en matrise

En "for" -sløyfe er en grunnleggende del av nesten alle programmeringsspråk. Det hjelper med å skrive koden du vil bli gjentatt i ønsket antall ganger. For Linux-baserte systemer har Bash også dedikert syntaks som gjør det mulig for brukerne å utnytte løkker for å automatisere sine daglige oppgaver gjennom skript.

Selv om du kan bruke "for" -sløyfen i et tilnærmet uendelig antall scenarier, vil denne guiden se på tre grunnleggende scenarier som du kan koble til mer omfattende og komplekse scenarier for å oppnå større mål. Vi vil utforske tre grunnleggende scenarier som bruker for -loop for itering gjennom en matrise.

For å demonstrere arbeidet med "for" -sløyfen, vil jeg demonstrere bashskriptene ved å bruke Ubuntu 22.04.

Opprette bash -filen

Før vi utforsker scenariene, la oss lage vår bash -fil, som vil inneholde bashskriptet vårt. Bare naviger til ønsket katalog i terminalen og opprett en fil ved hjelp av “Nano” eller “Touch” -kommandoen.

For denne guiden vil jeg lage en "test.SH ”-filen i" Documents "-katalogen.

Dette åpner bash -filen din ved hjelp av Nano Text Editor.

Her kan du begynne å skrive koden du vil ha i skriptfilen din. La oss starte med å utforske scenariene.

Bruker "for" -sløyfen for å vise innholdet i en matrise

Med bash -filen din åpnet i redaktøren, kan vi begynne å legge til kode til den. For å spesifisere at dette er en bash -fil, må du indikere følgende:

“#! /bin/bash ”

Først må vi definere en matrise og tilordne fem verdier til den. La oss tildele navnene John, Jane, Jim, Jack og Janis.

Nå kommer den morsomme delen; Vi må sette opp for -loopen, som ved å bruke iteratoren “I” vil iterere gjennom matrisens innhold og utføre skjermfunksjonen. Du kan gjøre det som sådan:

Denne linjen setter opp sløyfen. Med "$" -symbolet spesifiserer vi at vi prøver å få tilgang til verdien av den spesifikke indeksen for matrisen. "@" -Symbolet refererer til indeksen for matrisen, som inneholder verdien vi prøver å få tilgang til ved hjelp av "jeg" iterator.

I bash scripting dikterer syntaks at vi spesifiserer vår funksjon innenfor "do" og "done" nøkkelord. Så når vi prøver å vise innholdet i matrisen, vil vi skrive det ut som vist nedenfor:

Dette vil gå gjennom alt innholdet i matrisen og vise dem en etter en. Nå ser skriptet vårt slik:

Trykk “CTRL+O” for å lagre innholdet i denne skriptfilen og “Ctrl+X” for å avslutte fra Nano Editor.

Kjører manuset

Med all koden på plass, kan du lure på hvordan du kan utføre denne koden for å se utdataene. I terminalen din, type:

$ bash test.sh

Her kan du se navnene som vises slik vi har definert dem.

Bruke “For” -løkken for å skrive innholdet i en matrise til en tekstfil

Dette scenariet fungerer bra i tilfeller der vi får utdataene fra et spesifikt scenario i en matrise, og vi må sende ut innholdet i matrisen for fremtidig referanse eller en annen beregning.

Så la oss ta koden som vi har skrevet i forrige scenario og endre den. I stedet for å skrive ut hver oppføring i matrisen en etter en, må vi skrive den ut i en tekstfil. Åpne skriptfilen din ved å bruke:

$ nano test.sh

Når vi nå har en rekke "forfattere", skal vi skrive dem ut til en fil som heter "Forfattere.txt ”ved hjelp av >> symbolene. Så koden din skal se slik ut:

Lagre og gå ut fra filen for å kjøre skriptet.

Kjører manuset

I likhet med det forrige scenariet, kan du kjøre det oppdaterte skriptet ved hjelp av:

$ bash test.sh

Denne gangen når du kjører koden, vil du se at det ikke blir noen utdata i terminalen. Dette er fordi koden sender ut alt til tekstfilen. En tekstfil ville blitt opprettet i samme katalog.

Når du åpner filen (du kan bare dobbeltklikke på filen for å åpne den), vil du se at navnene er lagt til i filen:

Bruke "for" -løkken for å sammenligne en gitt streng med elementene i matrisen

Vi vil bruke det samme bashskriptet for dette scenariet og utvide det videre.

Hovedstrukturen i koden vår vil forbli den samme, og vi må oppdatere innholdet i sløyfekoden. Ved å bruke det samme skriptet, vil vi se om vårt oppgitte navn samsvarer med noen av navnene i matrisen; Hvis det gjør det, vil vi hilse på dem. For de andre navnene på matrisen vil den bare vise dem.

La oss åpne filen vår ved å bruke "Nano":

$ nano test.sh

Nå vil vi oppdatere koden mellom DO og gjort nøkkelord til følgende:

Denne koden vil sjekke på utførelsestidspunktet hvis noen av navnene i matrisen samsvarer med "Janis", og deretter vis “Hei Janis”. Ellers er det bare å vise navnene. Koden din skal se slik ut:

For å kunne kjøre denne koden, må du lagre filen og avslutte fra Text Editor.

Kjører manuset

Når du er tilbake i terminalen, kan du bruke det samme til å utføre det modifiserte bashskriptet:

$ bash test.sh

Konklusjon

Disse tre er veldig primitive eksempler på å bruke "for" -sløyfen i bashskriptene dine. Når du fortsetter å lære mer om hva disse skriptene kan gjøre, vil du se at denne sløyfen kommer veldig nyttig og kan brukes i veldig komplekse koder. For bedre å forstå skripting og bruke den i din daglige drift, må du forstå disse grunnleggende komponentene i koden og hva syntaksen gjør.

Hvis du får problemer med noen av disse scenariene eller vil lære mer om løkker eller bashskripting, kan du gjerne engasjere oss gjennom kommentarfeltet, så hjelper vi deg med å hjelpe deg. Jubel.