BASH programozás

Hogyan kell használni az $ IFS-t a Bash-ban?

Hogyan kell használni az $ IFS-t a Bash-ban?
A szkriptelés során különféle okokból meg kell bontanunk a karakterlánc-adatokat. A Split számos számítógépes nyelven integrált szolgáltatás, amely minden adatsort különféle darabokra oszt. A bash-nak azonban nincs beépített szolgáltatása a húrok felosztásához. Bármely karakterlánc értékének megszakításához sok egyszeres és összetett elválasztót kell használni. Az IFS (Internal Field Separator) változót használjuk egy adott elválasztó megadására a karakterlánc-felosztáshoz. Ebben az útmutatóban megtudhatja, hogyan lehet különféle módszerekkel szemléltetni a string értékének törését a bash-ban az $ IFS használatával.

Előfeltételek

Győződjön meg arról, hogy telepítette és konfigurálta a Linux-alapú rendszert. Dolgozni fogunk az Ubuntu 20-on.04 Linux rendszer. Jelentkezzen be az Ubuntu fiók felhasználói közül, hogy elkezdhessen dolgozni az IFS-en. Jobb lesz, ha bejelentkezel a root felhasználói fiókodból. Bejelentkezés után indítsa el a parancssori terminált a rendszerében a Tevékenység területről.

01. példa: IFS sztring felosztása szóközként értékként

Első példánkként meg fogjuk érteni a karakterlánc szétválasztását a bash-ban, miközben a szóközt használjuk elválasztó értékként az IFS változó segítségével. Először létre kell hoznunk egy bash fájlt a rendszerünkben. A 'touch' paranccsal új fájlokat hozhatunk létre Linux rendszerünkben. Amint az alább látható, létrehoztunk egy bash fájlt 'file1.sh 'a' touch 'utasítás használatával:

$ touch fájl1.SH

Nyissa meg Linux rendszerének otthoni könyvtárát az Ubuntu 20 bal sarkában látható mappaikon segítségével.04 asztal. Megtalálja az újonnan létrehozott bash fájlt „file1.sh ”benne. Nyissa meg a „file1.sh ”, és írja be az alábbi parancsfájlt. Először definiáltunk egy „str” nevű karakterláncot, benne némi string értékkel. Ezután meghatározzuk az IFS elválasztó változót, mint olyan változót, amelynek értéke szóköz. Ezt követően az read utasítással mentettük az elosztott adatokat egy „strarr” tömbre az „-a” jelzővel. Az 'echo' utasítással nyomtathat egy stringet a tömb összes szavának számával együtt a „$ # strarr [*]” segítségével. A „for” ciklussal tömb értékeit osztott formában nyomtathatjuk ki a „var” változó segítségével. A „\ n” visszavágót használták a nyomtatási soron belül a „var” változóval együtt, hogy a tömb minden értéke után egy sort hasítson. A továbblépéshez mentse el a szkriptet a „Ctrl + S” billentyűvel, és zárja be a fájlt.

Gyere vissza a terminál oldalára. Most ellenőrizzük a fenti kód kimenetét. Ehhez a 'bash' parancsot fogjuk használni a „file1” fájl nevével együtt.sh ”az alább látható végrehajtáshoz. Először az „echo” utasításban említett sort jelenítette meg egy tömb szavainak számával együtt. Ezt követően a tömb összes értékét megjelenítette az IFS által megosztott „for” hurok használatával.

$ bash fájl1.SH

02. példa: IFS karakterlánc felosztása karakterként értékként

A fent említett példában láthattad, hogyan lehet szétválasztani a string változókat részekre, miközben a szóközt használod az IFS elválasztóként. Most egy karaktert fogunk használni egy karakterlánc felosztásához egy IFS elválasztó segítségével. Nyissa meg a parancsot, és hozzon létre egy új bash fájlt „file2.sh ”a Linux rendszer saját könyvtárában a“ touch ”paranccsal az alábbiak szerint:

$ touch fájl2.SH

Nyissa meg a Linux rendszerének saját könyvtárát. Megtalálja az újonnan létrehozott fájlt. Nyissa meg az újonnan létrehozott fájlt, és írja be az alább bemutatott bash kódot. A 3. vonalon elindítottunk egy „visszhang” utasítást egy vonal kinyomtatására. A következő sor a felhasználó által a terminálban megadott „read” kulcsszóval beírt bemenetet olvassa fel. Ezután meghatároztuk az „IFS” elválasztót, és karakteres értékként az „,” vesszőt állítottuk be. Meghatároztunk egy másik „read” utasítást egy karakterlánc vesszővel tagolt értékeinek olvasására és mentésére, amelyet a felhasználó egy „strarr” tömbbe vezet be. Végül három visszhangparancsot kezdeményeztünk a vesszővel elválasztott osztott értékek változókként történő kinyomtatására, amint az a képen látható. Mentse és zárja be ezt a fájlt.

Most végre kell hajtanunk ezt a mentett fájlt. Ehhez hajtsa végre az alább látható bash parancsot, amelyet egy terminál fájljának neve követ. Hozzá kell adnia néhány string értéket, amelynek az értékeken belül tartalmaznia kell a vesszőt, és meg kell nyomnia az Enter gombot. Most az adatait egy „strarr” tömbbe mentette. Az utolsó három sor az „echo” utasítások kimenetét mutatja. Láthatja, hogy a vessző előtt és után minden szöveget külön értékként használtak.

$ bash fájl2.SH

03. példa: IFS osztott karakterlánc

Mindkét korábbi példát megcsináltuk egy bash fájlban. Most bemutatjuk az „IFS” használatát egy bash fájl létrehozása nélkül. Ehhez nyissa meg a parancsértelmezőt. Először létre kell hoznunk egy „var” karakterláncot, amelyben egy string érték szerepel. Ez a karakterlánc vesszőt tartalmaz minden szó után.

$ var = ”Szia, 25 éves vagyok, öreg vagyok.”

Ezután inicializálja az 'IFS' változót úgy, hogy a vessző legyen elválasztó érték.

$ IFS =,

Ezt követően a „for” ciklussal kerestük meg az IFS elválasztó vesszővel elválasztott „var” változó minden szavát, és kinyomtattuk az „echo” utasítással.

$ for i a $ var-ban
> csinálni
> visszhang [$ i]
> Kész

Az alábbi kimenet lesz. A „var” sztringváltozó minden egyes szavát egy új sorban jeleníti meg, a hasító karakterként használt „,” elválasztó vessző miatt.

Következtetés:

Ebben az útmutatóban számos módszert tanult meg a bemeneti értékek felosztására egy bash-ban, pl.g., szóközzel vagy karakterrel. Reméljük, hogy az útmutatóban említett illusztrációk segítenek az IFS elválasztó használatával minden karakterlánc megszakításában.

A legjobb Linux-disztribútorok játékhoz 2021-ben
A Linux operációs rendszer hosszú utat tett meg eredeti, egyszerű, szerver alapú kinézetétől. Ez az operációs rendszer rendkívül javult az elmúlt évek...
Hogyan lehet rögzíteni és streamelni a játékmenetét Linuxon
Korábban a játékokat csak hobbinak tekintették, de az idő múlásával a játékipar hatalmas növekedést ért el a technológia és a játékosok száma szempont...
A legjobb játékok kézi követéssel
Az Oculus Quest nemrégiben bemutatta a vezérlés nélküli kézi követés nagyszerű ötletét. Az egyre növekvő számú játékkal és tevékenységgel, amelyek tám...