Programování BASH

Jak používat $ IFS v Bash?

Jak používat $ IFS v Bash?
Při skriptování musíme data řetězce přerušit z různých důvodů. Split je integrovaná funkce v mnoha počítačových jazycích, která rozděluje každý řetězec dat na různé části. Bash však nemá integrovanou funkci pro rozdělení řetězce. Chcete-li přerušit libovolnou hodnotu řetězce, je třeba použít mnoho jednoduchých a složených oddělovačů. K určení konkrétního oddělovače pro dělení řetězců se používá proměnná IFS (Internal Field Separator). V této příručce se naučíte, jak používat různé metody k ilustraci procesu rozbití hodnoty řetězce v bash pomocí $ IFS.

Předpoklady

Ujistěte se, že máte nainstalovaný a nakonfigurovaný systém založený na Linuxu. Budeme pracovat na Ubuntu 20.04 Systém Linux. Přihlaste se od svého uživatele účtu Ubuntu a začněte pracovat na IFS. Bude lepší, když se přihlásíte ze svého uživatelského účtu root. Po přihlášení spusťte terminál příkazového řádku v systému z oblasti Činnost.

Příklad 01: IFS Rozdělte řetězec pomocí mezery jako hodnoty

Pro náš první příklad pochopíme koncept rozdělení řetězce v bash při použití mezery jako hodnoty oddělovače pomocí proměnné IFS. Nejprve musíme v našem systému vytvořit soubor bash. Můžeme vytvořit nové soubory v našem systému Linux pomocí příkazu 'touch'. Jak je znázorněno níže, vytvořili jsme bash soubor 'file1.sh 'pomocí instrukce' touch ':

$ dotykový soubor1.sh

Otevřete domovský adresář svého systému Linux pomocí ikony složky zobrazené v levém rohu vašeho systému Ubuntu 20.04 desktop. Najdete svůj nově vytvořený bash soubor „file1.sh “v tom. Otevřete soubor „file1.sh “a zadejte následující skript. Nejprve jsme definovali řetězec s názvem „str“, který obsahuje nějakou hodnotu řetězce. Poté definujeme oddělovací proměnnou IFS jako proměnnou, která má jako hodnotu mezeru. Poté jsme pomocí příkazu read uložili a načetli rozdělená data do pole „strarr“ pomocí příznaku „-a“. Příkaz 'echo' se používá k tisku řádku řetězce spolu s počtem celkových slov pole pomocí "$ # strarr [*]". Smyčka „pro“ se používá k tisku hodnot pole ve rozdělené formě pomocí proměnné „var“. Zpětné lomítko „\ n“ bylo použito v tiskové linii spolu s proměnnou „var“, aby po každé hodnotě pole bylo možné rozdělit zlomek jednoho řádku. Uložte skript pomocí klávesy „Ctrl + S“ a soubor zavřete, abyste mohli pokračovat.

Vraťte se zpět na stranu terminálu. Nyní zkontrolujeme výstup výše uvedeného kódu. K tomu použijeme příkaz 'bash' spolu s názvem souboru “file1.sh “k jeho provedení, které je uvedeno níže. Nejprve zobrazil řádek uvedený v příkazu „echo“ spolu s počtem slov pole. Poté zobrazil všechny hodnoty pole pomocí smyčky „for“ rozdělené IFS.

$ bash soubor1.sh

Příklad 02: IFS Rozdělte řetězec pomocí znaků jako hodnoty

Ve výše uvedeném příkladu jste viděli, jak rozdělit řetězcové proměnné na části při použití mezery jako oddělovače IFS. Nyní použijeme znak k rozdělení řetězce pomocí oddělovače IFS. Otevřete příkazový terminál a vytvořte nový bash soubor „file2.sh “ve vašem domovském adresáři systému Linux pomocí příkazu„ touch “následujícím způsobem:

$ dotykový soubor2.sh

Otevřete domovský adresář systému Linux. Najdete v něm nově vytvořený soubor. Otevřete nově vytvořený soubor a napište níže uvedený bash kód. Na řádku 3 jsme zahájili příkaz „echo“ pro tisk řádku. Další řádek čte vstup zadaný uživatelem v terminálu pomocí klíčového slova „read“. Dále jsme definovali oddělovač „IFS“ a jako jeho znakovou hodnotu nastavili čárku „,“. Byl zadán další příkaz „read“ pro čtení a ukládání hodnot děleného čárkou řetězce, který je zadán uživatelem do pole „strarr“. Nakonec jsme zahájili tři příkazy ozvěny pro tisk hodnot rozdělení oddělených čárkami jako proměnné, jak je znázorněno na obrázku. Uložte a zavřete tento soubor.

Nyní musíme tento uložený soubor spustit. Proveďte níže zobrazený příkaz bash následovaný názvem souboru v terminálu. Musíte přidat nějakou hodnotu řetězce, která musí v hodnotách obsahovat čárku „,“ a stisknout tlačítko Enter. Nyní byla vaše data uložena do pole „strarr“. Poslední tři řádky ukazují výstup příkazů „echo“. Můžete vidět, že každý text před a po čárce byl použit jako samostatná hodnota.

$ bash soubor2.sh

Příklad 03: IFS Split String

Oba předchozí příklady jsme provedli v souboru bash. Nyní si ukážeme použití „IFS“ bez vytvoření souboru bash. Otevřete příkazový shell. Nejprve musíme vytvořit řetězec „var“ s řetězcovou hodnotou. Tento řetězec obsahuje čárky za každým slovem.

$ var = ”Ahoj, já jsem, 25 let, starý.“

Dále inicializujte proměnnou 'IFS' s čárkou znaků jako hodnotou oddělovače.

$ IFS =,

Poté jsme pomocí smyčky „pro“ prohledali každé slovo z proměnné „var“ oddělené čárkou oddělovače IFS a vytiskli jej pomocí příkazu „echo“.

$ pro i v $ var
> dělat
> echo [$ i]
> Hotovo

Výstup budete mít níže. Ukáže každé slovo řetězcové proměnné „var“ na novém řádku z důvodu oddělovací čárky „,“ použité jako dělený znak.

Závěr:

V této příručce jste se naučili různé metody rozdělení vstupních hodnot do bash, např.G., s mezerou nebo se znakem. Doufáme, že ilustrace uvedené v této příručce vám pomohou rozbít každý řetězec pomocí oddělovače IFS.

Hry Jak nainstalovat a hrát Doom na Linuxu
Jak nainstalovat a hrát Doom na Linuxu
Úvod do Doom Série Doom vznikla v 90. letech po vydání původního Doomu. Byl to okamžitý hit a od té doby herní série získala řadu ocenění a původní Do...
Hry Vulkan pro uživatele Linuxu
Vulkan pro uživatele Linuxu
S každou novou generací grafických karet vidíme, že vývojáři her posouvají hranice grafické věrnosti a přibližují se k fotorealismu. Ale navzdory vešk...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...