Programovanie v jazyku BASH

Ako používať $ IFS v Bashi?

Ako používať $ IFS v Bashi?
Pri skriptovaní musíme údaje z reťazcov prerušiť z rôznych dôvodov. Split je integrovaná funkcia v mnohých počítačových jazykoch, ktorá rozdeľuje každý reťazec dát na rôzne časti. Programu bash však chýba zabudovaná funkcia na rozdelenie reťazca. Na zlomenie ľubovoľnej hodnoty reťazca je možné použiť veľa jednoduchých aj zložených oddeľovačov. Na určenie konkrétneho oddeľovača pre delenie reťazcov sa používa premenná IFS (Internal Field Separator). V tejto príručke sa dozviete, ako používať rôzne metódy na ilustráciu procesu prerušenia hodnoty reťazca v bashe pomocou $ IFS.

Predpoklady

Uistite sa, že máte nainštalovaný a nakonfigurovaný systém založený na Linuxe. Budeme pracovať na Ubuntu 20.04 Systém Linux. Prihláste sa od používateľa účtu Ubuntu a začnite pracovať na IFS. Bude lepšie, ak sa prihlásite z účtu root. Po prihlásení spustite v systéme terminál príkazového riadku z oblasti Činnosť.

Príklad 01: IFS Rozdelenie reťazca pomocou medzery ako hodnoty

Pre náš prvý príklad pochopíme koncept rozdelenia reťazca v bashe pri použití medzery ako hodnoty oddeľovača pomocou premennej IFS. Najskôr musíme v našom systéme vytvoriť bash súbor. V našom systéme Linux môžeme vytvárať nové súbory pomocou príkazu „dotyk“. Ako je uvedené nižšie, vytvorili sme bash súbor 'file1.sh 'pomocou inštrukcie' touch ':

$ dotykový súbor1.š

Otvorte domovský adresár systému Linux pomocou ikony priečinka zobrazenej v ľavom rohu vášho systému Ubuntu 20.04 desktop. Nájdete svoj novovytvorený bash súbor „file1.sh “v tom. Otvorte súbor „file1.sh “a zadajte nasledujúci skript. Najskôr sme definovali reťazec s názvom „str“, ktorý obsahuje nejakú hodnotu reťazca. Potom definujeme oddeľovaciu premennú IFS ako premennú, ktorá má ako svoju hodnotu medzeru. Potom sme pomocou príkazu read uložili a prečítali rozdelené údaje do poľa „strarr“ pomocou príznaku „-a“. Príkaz 'echo' sa používa na vytlačenie riadku reťazca spolu s počtom celkových slov poľa pomocou znaku „$ # strarr [*]“. Smyčka „pre“ sa používa na tlač hodnôt poľa v rozdelenej podobe pomocou premennej „var“. Spätné lomítko „\ n“ bolo použité v rámci tlačového riadku spolu s premennou „var“ na zabezpečenie rozdelenia jedného riadku po každej hodnote poľa. Uložte skript pomocou klávesu „Ctrl + S“ a zatvorte súbor, aby ste mohli pokračovať.

Vráťte sa späť na terminálovú stranu. Teraz skontrolujeme výstup vyššie uvedeného kódu. Na tento účel použijeme príkaz 'bash' spolu s názvom súboru „file1.sh “na jeho vykonanie, ktoré je zobrazené nižšie. Najskôr sa zobrazil riadok uvedený vo výroku „echo“ spolu s počtom slov poľa. Potom zobrazila všetky hodnoty poľa pomocou slučky „for“ rozdelenej IFS.

$ bash súbor1.š

Príklad 02: IFS Rozdelenie reťazca pomocou znaku ako hodnoty

Vo vyššie uvedenom príklade ste videli, ako rozdeliť reťazcové premenné na časti pri použití medzery ako oddeľovača IFS. Teraz použijeme znak na rozdelenie reťazca pomocou oddeľovača IFS. Otvorte príkazový terminál a vytvorte nový bash súbor „file2.sh “vo vašom domovskom adresári systému Linux pomocou príkazu„ touch “takto:

$ dotykový súbor2.š

Otvorte domovský adresár systému Linux. Nájdete v ňom svoj novovytvorený súbor. Otvorte novo vytvorený súbor a napíšte nižšie uvedený bash kód. V riadku 3 sme spustili príkaz „echo“ na vytlačenie riadku. Nasledujúci riadok číta vstup zadaný používateľom v termináli pomocou kľúčového slova „read“. Ďalej sme definovali oddeľovač „IFS“ a ako jeho znakovú hodnotu nastavili čiarku „,“. Bol zadaný ďalší príkaz „read“ na čítanie a ukladanie hodnôt rozdelenia čiarky reťazca, ktorý je vstupom používateľa do poľa „strarr“. Nakoniec sme spustili tri príkazy ozveny, aby sme tlačili hodnoty rozdelenia oddelené čiarkou ako premenné, ako je to znázornené na obrázku. Uložte a zatvorte tento súbor.

Teraz musíme tento uložený súbor vykonať. Vykonajte nižšie zobrazený príkaz bash, za ktorým nasleduje názov súboru v termináli. Musíte pridať nejakú hodnotu reťazca, ktorá musí v hodnotách obsahovať čiarku „,“ a stlačiť tlačidlo Enter. Teraz boli vaše údaje uložené do poľa „strarr“. Posledné tri riadky zobrazujú výstup príkazov „echo“. Môžete vidieť, že každý text pred a za čiarkou bol použitý ako samostatná hodnota.

$ bash súbor2.š

Príklad 03: IFS Split String

Oba predchádzajúce príklady sme vytvorili v bashovom súbore. Teraz si ukážeme použitie „IFS“ bez vytvorenia súboru bash. Ak to chcete urobiť, otvorte príkazový shell. Najskôr musíme vytvoriť reťazec „var“ s hodnotou reťazca. Tento reťazec obsahuje za každým slovom čiarky.

$ var = ”Ahoj, ja som, 25, rokov, starý.“

Ďalej inicializujte premennú 'IFS' s čiarkou znaku ako hodnotou oddeľovača.

$ IFS =,

Potom sme pomocou slučky „for“ vyhľadali každé slovo z premennej „var“ oddelené čiarkou oddeľovača IFS a vytlačili ho pomocou príkazu „echo“.

$ pre i v $ var
> robiť
> echo [$ i]
> Hotovo

Výstup budete mať nižšie. Ukáže každé slovo reťazcovej premennej „var“ na novom riadku z dôvodu oddeľovacej čiarky „,“ použitej ako rozdelený znak.

Záver:

V tejto príručke ste sa naučili rôzne metódy na rozdelenie vstupných hodnôt na bash, napr.g., s medzerou alebo so znakom. Dúfame, že ilustrácie uvedené v tomto sprievodcovi výučbou vám pomôžu prerušiť každý reťazec pomocou oddeľovača IFS.

Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...
Hry Najlepšie emulátory herných konzol pre systém Linux
Najlepšie emulátory herných konzol pre systém Linux
V tomto článku je uvedený zoznam populárneho softvéru na emuláciu herných konzol, ktorý je k dispozícii pre systém Linux. Emulácia je vrstva kompatibi...
Hry Najlepšie linuxové distribúcie pre hry v roku 2021
Najlepšie linuxové distribúcie pre hry v roku 2021
Operačný systém Linux prešiel dlhou cestou od svojho originálneho, jednoduchého serverového vzhľadu. Tento OS sa za posledné roky nesmierne vylepšil a...