BASH-programmering

Sådan bruges $ IFS i Bash?

Sådan bruges $ IFS i Bash?
I scripting skal vi bryde strengdata af forskellige årsager. Split er en integreret funktion på mange computersprog, der deler hver streng af data i forskellige stykker. Bash mangler dog en indbygget funktion til opdeling af en streng. For at bryde en strengværdi er der mange enkelt- og sammensatte afgrænsere, der skal bruges. En variabel IFS (Internal Field Separator) bruges til at specificere en bestemt afgrænser til strenginddeling. I denne vejledning lærer du, hvordan du bruger forskellige metoder til at illustrere processen med at bryde en strengværdi i bash ved hjælp af $ IFS.

Forudsætninger

Sørg for, at du har det Linux-baserede system installeret og konfigureret. Vi arbejder på Ubuntu 20.04 Linux-system. Log ind fra din bruger af din Ubuntu-konto for at begynde at arbejde på IFS. Det vil være bedre, hvis du logger ind fra din root-brugerkonto. Efter at have logget ind, start kommandolinjeterminalen i dit system fra aktivitetsområdet.

Eksempel 01: IFS Opdel en streng ved hjælp af mellemrum som værdi

For vores første eksempel vil vi forstå begrebet opdeling af en streng i bash, mens du bruger mellemrum som en afgrænsningsværdi ved hjælp af IFS-variablen. Først skal vi oprette en bash-fil i vores system. Vi kan oprette nye filer i vores Linux-system ved hjælp af kommandoen 'touch'. Som vist nedenfor har vi oprettet en bash-fil 'file1.sh 'ved hjælp af' touch 'instruktionen:

$ touch fil 1.sh

Åbn hjemmekataloget på dit Linux-system ved hjælp af mappeikonet, der vises i venstre hjørne af din Ubuntu 20.04 desktop. Du finder din nyoprettede bash-fil “file1.sh ”i det. Åbn filen “file1.sh ”og skriv nedenstående script. For det første har vi defineret en streng med navnet “str” med en eller anden strengværdi i den. Derefter definerer vi en afgrænsningsvariabel IFS som en variabel, der har mellemrum som sin værdi. Derefter brugte vi læseerklæringen til at gemme og læse splitdataene i en matrix "strarr" ved hjælp af "-a" -flagget. Et 'ekko'-udsagn bruges til at udskrive en strenglinje sammen med antallet af samlede ord i en matrix ved hjælp af "$ # strarr [*]". "For" -sløjfen bruges til at udskrive værdierne for en matrix i delt form ved hjælp af variablen "var". Omvendt skråstreg “\ n” var blevet brugt inden for udskrivningslinjen sammen med variablen “var” for at give en opdelt pause på en linje efter hver værdi i arrayet. Gem scriptet ved hjælp af "Ctrl + S" -tasten, og luk filen for at gå videre.

Kom tilbage til terminalen. Nu vil vi kontrollere output fra ovenstående kode. Til dette bruger vi kommandoen 'bash' sammen med navnet på en fil "file1.sh ”for at udføre det, som er vist nedenfor. Først viste den linjen nævnt i "ekko" -erklæringen sammen med antallet af ord i en matrix. Derefter viste den alle værdierne i arrayet ved hjælp af "for" -sløjfen opdelt af IFS.

$ bash-fil 1.sh

Eksempel 02: IFS Opdel en streng ved hjælp af tegn som værdi

I det ovennævnte eksempel har du set, hvordan du opdeler strengvariabler i dele, mens du bruger space som en afgrænser af IFS. Nu bruger vi et tegn til at opdele en streng ved hjælp af en IFS-afgrænser. Åbn din kommandoterminal og opret en ny bash-fil “file2.sh ”i dit hjemmekatalog på Linux-systemet ved hjælp af kommandoen“ touch ”som følger:

$ touch fil2.sh

Åbn hjemmekataloget på dit Linux-system. Du finder din nyoprettede fil i den. Åbn din nyoprettede fil, og skriv den nedenfor præsenterede baskode. På linje 3 har vi indledt en "ekko" -erklæring for at udskrive en linje. Den næste linje læser input fra en bruger i en terminal ved hjælp af nøgleordet "læse". Dernæst definerede vi "IFS" -afgrænseren og satte komma "," som dens karakterværdi. En anden "læs" -udtalelse er blevet specificeret til at læse og gemme komma-splitværdierne for en streng, der er input af en bruger til en array "strarr". Endelig har vi indledt tre ekkosætninger for at udskrive de komma-adskilte splitværdier som variabler som vist på billedet. Gem og luk denne fil.

Nu skal vi udføre denne gemte fil. Udfør nedenstående bash-kommando efterfulgt af navnet på en fil i en terminal for at gøre det. Du skal tilføje nogle strengværdier, der skal indeholde komma "," inden for værdierne og trykke på Enter-knappen. Nu er dine data gemt i en matrix "strarr". De sidste tre linjer viser output af "ekko" udsagnene. Du kan se, hver tekst før og efter kommaet er blevet brugt som en separat værdi.

$ bash fil2.sh

Eksempel 03: IFS splitstreng

Vi har lavet begge tidligere eksempler i en bash-fil. Vi får nu en illustration af brugen af ​​"IFS" uden at oprette en bash-fil. Åbn din kommandoskal for at gøre det. Først skal vi oprette en streng “var” med en strengværdi i. Denne streng indeholder komma efter hvert ord.

$ var = ”Hej, jeg er 25 år gammel.”

Initialiser derefter 'IFS' -variablen med tegn kommaet som afgrænsningsværdien.

$ IFS =,

Derefter brugte vi "for" -sløjfen til at søge på hvert ord fra variablen "var" adskilt af et IFS-skilletegn og udskrive det ved hjælp af "ekko" -sætningen.

$ for i i $ var
> gør
> ekko [$ i]
> Udført

Du får output nedenfor. Det viser hvert ord i en strengvariabel "var" på en ny linje på grund af skilletegnet "," brugt som et delt tegn.

Konklusion:

I denne vejledning har du lært en række forskellige metoder til at opdele inputværdierne i en bash, f.eks.g., med plads eller med et tegn. Vi håber, at illustrationer nævnt i denne vejledningsvejledning hjælper dig med at bryde hver streng ved hjælp af IFS-afgrænser.

Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...