BASH programavimas

Kaip naudoti $ IFS „Bash“?

Kaip naudoti $ IFS „Bash“?
Rašydami scenarijus, turime sugadinti eilutės duomenis dėl įvairių priežasčių. „Split“ yra integruota daugelio kompiuterių kalbų funkcija, kuri kiekvieną duomenų eilutę dalija į įvairias dalis. Tačiau „bash“ trūksta integruotos funkcijos, kaip padalyti eilutę. Norėdami nutraukti bet kokią eilutės vertę, reikia naudoti daug atskirų ir sudėtinių atribiklių. Kintamasis IFS („Internal Field Separator“) naudojamas nurodant tam tikrą eilutės dalijimo ribotuvą. Šiame vadove sužinosite, kaip naudoti įvairius metodus, norint iliustruoti eilutės vertės sulaužymo procesą bash'e naudojant $ IFS.

Būtinos sąlygos

Įsitikinkite, kad turite įdiegtą ir sukonfigūruotą „Linux“ sistemą. Dirbsime su „Ubuntu 20“.04 „Linux“ sistema. Prisijunkite iš savo „Ubuntu“ paskyros vartotojo, kad galėtumėte dirbti su IFS. Bus geriau, jei prisijungsite iš savo šakninio vartotojo abonemento. Prisijungę paleiskite komandų eilutės terminalą savo sistemoje iš veiklos srities.

01 pavyzdys: IFS padalykite eilutę naudodami tarpą kaip vertę

Pirmame pavyzdyje mes suprasime eilutės padalijimo į bash koncepciją, naudodami tarpą kaip skiriamąją vertę naudodami IFS kintamąjį. Pirma, turime sukurti bash failą savo sistemoje. Naudodami „touch“ komandą, galime sukurti naujus failus savo „Linux“ sistemoje. Kaip parodyta žemiau, mes sukūrėme bash failą 'file1.sh ', naudodamas „touch“ instrukciją:

$ touch failas1.sh

Atidarykite „Linux“ sistemos namų katalogą naudodami aplanko piktogramą, rodomą kairiajame „Ubuntu 20“ kampe.04 darbalaukis. Rasite naujai sukurtą „bash“ failą „file1.sh “jame. Atidarykite failą „file1.sh “ir įveskite žemiau esantį scenarijų. Pirma, mes apibrėžėme eilutę pavadinimu „str“, kurioje yra tam tikra eilutės vertė. Tada mes apibrėžiame ribotuvo kintamąjį IFS kaip kintamąjį, kurio vertė yra tarpas. Po to mes naudojome skaitytą sakinį, kad išsaugotume ir perskaitytume duomenis į masyvą „strarr“, naudodami „-a“ vėliavą. „Echo“ sakinys naudojamas eilutės eilutei atspausdinti kartu su masyvo žodžių skaičiumi naudojant „$ # strarr [*]“. Kilpa „už“ naudojama masyvo reikšmėms išspausdinti padalijant formą, naudojant kintamąjį „var“. Galinis pasvirasis brūkšnys „\ n“ buvo naudojamas spausdinimo eilutėje kartu su kintamuoju „var“, kad po kiekvienos masyvo reikšmės būtų padalytas vienos eilutės pertrauka. Išsaugokite scenarijų naudodami „Ctrl + S“ klavišą ir uždarykite failą, kad tęstumėte toliau.

Grįžk į terminalo pusę. Dabar mes patikrinsime aukščiau nurodyto kodo išvestį. Tam naudosime komandą „bash“ kartu su failo pavadinimu „file1“.sh “, kad įvykdytumėte tai, kas parodyta žemiau. Pirma, jame buvo rodoma „aido“ sakinyje minima eilutė kartu su masyvo žodžių skaičiumi. Po to jis rodė visas masyvo reikšmes, naudodamas IFS padalytą kilpą „už“.

$ bash failas1.sh

02 pavyzdys: IFS padalykite eilutę naudodami simbolį kaip vertę

Minėtame pavyzdyje matėte, kaip eilutės kintamuosius padalinti į dalis, naudojant tarpą kaip IFS skiriklį. Dabar, naudodami simbolį, norėdami padalyti eilutę naudodami IFS skiriamąjį elementą. Atidarykite komandų terminalą ir sukurkite naują „bash“ failą „file2.sh “savo„ Linux “sistemos kataloge naudodami komandą„ touch “taip:

$ touch failas2.sh

Atidarykite savo „Linux“ sistemos namų katalogą. Jame rasite savo naujai sukurtą failą. Atidarykite naujai sukurtą failą ir parašykite žemiau pateiktą „bash“ kodą. 3 eilutėje mes inicijavome „aido“ sakinį, kad atspausdintume liniją. Kitoje eilutėje nuskaitomas vartotojo įvestas terminalas naudojant raktinį žodį „skaityti“. Tada mes apibrėžėme „IFS“ ribotuvą ir nustatėme kablelį „,“ kaip jo simbolio vertę. Nurodytas kitas „skaityti“ sakinys, skirtas skaityti ir išsaugoti kablelio padalijimo eilutės reikšmes, kurias vartotojas įveda į masyvą „strarr“. Pagaliau mes inicijavome tris aido teiginius, kad atspausdintume kableliais atskirtas padalijimo reikšmes kaip kintamuosius, kaip parodyta paveikslėlyje. Išsaugokite ir uždarykite šį failą.

Dabar turime vykdyti šį išsaugotą failą. Norėdami tai padaryti, vykdykite žemiau pateiktą komandą „bash“, po kurios nurodomas failo pavadinimas terminale. Turite pridėti keletą eilutės reikšmių, kuriose reikšmėse turi būti kablelis „,“, ir paspausti mygtuką Enter. Dabar jūsų duomenys buvo išsaugoti „strarr“ masyve. Paskutinės trys eilutės rodo „aido“ teiginių išvestį. Matote, kad kiekvienas tekstas prieš ir po kablelio buvo naudojamas kaip atskira reikšmė.

$ bash failas2.sh

03 pavyzdys: IFS padalijimo eilutė

Mes atlikome abu ankstesnius pavyzdžius „bash“ faile. Dabar turėsime iliustraciją, kaip naudoti „IFS“ nekuriant „bash“ failo. Norėdami tai padaryti, atidarykite komandos apvalkalą. Pirmiausia turime sukurti eilutę „var“, kurioje būtų eilutės vertė. Šioje eilutėje po kiekvieno žodžio yra kableliai.

$ var = ”Sveiki, aš, esu, 25, metų.“

Tada inicijuokite „IFS“ kintamąjį, nurodydami kablelį kaip skiriamąją vertę.

$ IFS =,

Po to mes naudojome kilpą „už“, kad ieškotume kiekvieno žodžio iš kintamojo „var“, atskirto IFS kableliu, ir atspausdintume jį naudodami „echo“ sakinį.

$ už i i $ var
> daryti
> aidas [$ i]
> Atlikta

Išvestį turėsite žemiau. Jis parodys kiekvieną eilutės kintamojo „var“ žodį naujoje eilutėje, nes skiriamasis kablelis „,“ naudojamas kaip padalytas simbolis.

Išvada:

Šiame vadove išmokote įvairių metodų, kaip padalinti įvesties reikšmes bash, t.g., su erdve ar su personažu. Tikimės, kad šiame vadovėlyje minimos iliustracijos padės sulaužyti kiekvieną eilutę naudojant IFS skiriklį.

Kaip rodyti OSD perdangą viso ekrano „Linux“ programose ir žaidimuose
Žaisdami viso ekrano žaidimus arba naudodamiesi programomis be išsiblaškymo viso ekrano režimu, galite nutraukti nuo susijusios sistemos informacijos,...
5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...
Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...