Pradedančiųjų vadovas

„Bash Scripting“ pamoka pradedantiesiems

„Bash Scripting“ pamoka pradedantiesiems

Jei pradedate naudotis „Linux“ sistemomis, pvz „Shell scenarijus“ arba „Bash scenarijai“Gali būti gana dažnas - bet ką jie reiškia? Prieš pradėdami detaliau, „Bash“ scenarijų mokymasis gali padėti sutaupyti laiko vykdant ir atliekant įvairias sistemos užduotis, geriau suprasti „Linux“ komandinę eilutę (terminalą) ir automatizuoti kelias sistemos užduotis.

Kas yra Bashas?

Bashas, ​​akronimas „Bourne-Again-Shell“ yra „Unix“ apvalkalas arba komandų kalbos vertėjas GNU operacinei sistemai. Tai buvo pagrindinė „Linux“ distribucijų ir „Apple macOS“ leidimų „Shell“ versija prieš „macOS Catalina“. „Bash“ taip pat galima „Windows 10“ per „Windows“ posistemį, skirtą „Linux“.

„Bash“ paprastai veikia tekstiniame lange, paprastai vadinamame „Terminal“, kur vartotojai įveda komandas, kad atliktų įvairias užduotis. Bashas taip pat gali vykdyti faile užrašytas komandas, vadinamą metodu „Bash scenarijus.“

Skirtumas tarp „Bash“ scenarijų ir „Shell“ scenarijų

„Shell“ scenarijai ir „Bash“ scenarijai nėra tie patys dalykai. Naudodami „Bash“ scenarijus, jūs aiškiai naudojate „bash“ apvalkalą. Kita vertus, „Shell“ scenarijai gali būti gana platus žodis, nes turime ne tik „Bash“, bet ir kitus apvalkalus. Kai kurie iš labiausiai paplitusių yra Korn (ksh), C apvalkalas (csh), Z apvalkalas (zsh) ir Bash apvalkalas (sh). Tačiau nenuostabu, jei žmonės, vartojantys „bash“ scenarijus ir „shell“ scenarijus, pakaitomis reiškia tą patį. Mūsų įrašas apie 6 geriausius „Linux“ atvirojo kodo kriaukles pateikia išsamų šių kriauklių aprašymą.

Šiame įraše mes apžvelgsime „Bash“ scenarijus. Pagal numatytuosius nustatymus daugelis „Linux“ paskirstymų naudoja „Bash“ apvalkalą. Peržiūrėkite mūsų įrašą apie 6 geriausius „Linux“ paskirstymus pradedantiesiems. Norėdami patvirtinti apvalkalą, kurį naudojate dabartiniame „Linux“ paskirstyme, vykdykite komandą terminale.

aidas $ SHELL

apvalkalas

Iš aukščiau esančio paveikslėlio galite pamatyti, kad numatytasis vertėjas mano sistemoje yra bash. Šiuo metu aš paleidžiu „Ubuntu 20“.04 LTS. Pasinerkime!

Suprasti „Bash“ scenarijus

„Bash“ scenarijai yra tekstiniai failai su „bash“ komandomis, kurie vykdomi įvairioms užduotims atlikti. Norint parašyti šiuos scenarijus, jums reikia tik paprasto teksto redaktoriaus, pvz., „Gedit“, lapų bloknotų, „vim“, „nano“ ir daug daugiau. Nepamirškite išsaugoti scenarijų naudodami a .sh plėtinys ir kaip paprastas tekstas, o ne turtingas tekstas. Vienas iš mano mėgstamiausių redaktorių, kurį naudoju rašydamas scenarijus, yra nano redaktorius.

Pavadinimas, leidimų priskyrimas ir „Bash“ scenarijaus vykdymas

Kaip paaiškinta aukščiau, įsitikinkite, kad naudojate .sh pratęsimas jūsų bash scenarijus. Pavyzdžiui, galite turėti scenarijų su pavadinimu fosslinux_backup.sh. Tačiau geriausia būtų atsargiai įvardyti scenarijus. Pavyzdžiui, dauguma žmonių mėgsta išsaugoti daugumą scenarijų kaip „testą“.Daugumai nežinoma, yra „Unix“ integruota komanda, vadinama „test“, kuri tikrina failų tipus ir lygina reikšmes. Norėdami išvengti bet kokių programos konfliktų, galite naudoti komandą kuri patikrinkite, ar yra programa tokiu pačiu pavadinimu kaip jūsų scenarijus.

kuri [komanda] el.g kuris testas

Kuri komanda

Iš aukščiau pateiktos išvesties galime pamatyti, kad testas jau yra integruota komanda. Todėl, kad išvengčiau konfliktų tarp programų, nevadinsiu nė vieno savo scenarijaus kaip „Testas.“

Norėdami, kad scenarijus būtų vykdomas kiekvienam vartotojui, naudokite toliau pateiktą komandą:

chmod + x [scenarijus.sh]

Norėdami, kad scenarijus būtų vykdomas dabartiniam vartotojui, naudokite toliau pateiktą komandą:

chmod u + x [scenarijus.sh]

Dabar, norėdami paleisti scenarijų, vykdykite toliau pateiktą komandą:

./ [scenarijaus_vardas]

Taikydami pirmiau nurodytą metodą suprasite, kad jums reikės naudoti cd komandą pereiti į katalogą, kuriame yra scenarijus, arba perduoti kelią į scenarijų. Tačiau tam yra sprendimas. Išsaugokite scenarijus šiukšliadėžė katalogas, esantis namų kataloge.

Su naujausiais atnaujinimais dauguma platinimų nėra šiukšliadėžė aplanką pagal numatytuosius nustatymus. Todėl turėsite jį sukurti rankiniu būdu. Įdėdami scenarijus į šį aplanką, galite vykdyti scenarijų įrašydami jo pavadinimą terminale nenaudodami cd ir ./ komandos.

„Bash Scripting“ gairės

Prieš rašydami pirmąjį scenarijų, turite keletą rekomendacijų, kurias turite suprasti rašydami scenarijus.

The #!/ bin / bash (Hash-Bang Hack) teiginys yra kelias į apvalkalą, kurį naudosime. Jei naudojate kitą apvalkalą, turėsite redaguoti šį kelią. Suprantame, kad visi komentarai prasideda # simbolis. Tačiau, kai sekė a (!) Hash-Bang Hack, scenarijus priverstas vykdyti su apvalkalu, nurodytu šia eilute. Mūsų atveju tai „Bash“ apvalkalas.

Jūsų pirmasis „Bash“ scenarijus

Kaip ir dauguma programavimo kalbų, mes parašysime scenarijų, kuris atspausdins "Labas pasauli" pareiškimas, kai vykdoma. Atidarykite mėgstamą teksto rengyklę ir įklijuokite toliau pateiktas komandas. Išsaugokite teksto failą kaip fossHelloWorld.sh ar bet kuris kitas pavadinimas, kuris nėra įmontuota komanda.

#!/ bin / bash #Šis scenarijus atspausdins „Hello World“ ant terminalo aido „Hello World“

Išsaugoję failą padarykite jį vykdomą vykdydami žemiau esančią komandą:

chmod + x fossHelloWorld.sh

Dabar paleiskite jį naudodami žemiau esančią komandą:

./ fossHelloWorld.sh

Pirmasis scenarijus

Aukščiau pateiktame scenarijuje yra tik trys eilutės. Pirmasis yra „Hash-Bang Hack“, kurį aptarėme aukščiau, antrasis yra komentaras, o trečiasis - komanda, kuri bus vykdoma. Atkreipkite dėmesį, kad komentarai niekada nevykdomi.

Pažvelkime į kitas „bash“ scenarijų funkcijas, kurias galite naudoti.

Echo komanda

Echo komanda naudojama spausdinti išvestį „Linux“ komandinėje eilutėje arba terminale. Jei esate kūrėjas ir anksčiau dirbote su PHP, taip pat turite susidurti su šia komanda. Parašykime mažą bash scenarijų, kad pademonstruotume, kaip ši komanda veikia.

#!/ bin / bash # Atspausdinkime pirmosios eilutės aidą "Tai Fosslinux.com - Su nauja eilute "# Atspausdinkime antrąjį teiginį be naujos eilutės aido -n" Tai yra Fosslinux - nėra naujos eilutės "

Išsaugokite scenarijų, priskirkite reikiamus leidimus ir vykdykite.

Bashas aidas

Kad suprastumėte kodą, pirmoji aido komanda išspausdina sakinį ir eina į kitą eilutę. Antroji aido komanda turi -n argumentas, kuris neleidžia scenarijui pereiti prie kitos eilutės. Kaip matysime toliau, naudodami komandą „Echo“ galite naudoti daugybę kitų parinkčių, įskaitant kintamuosius.

Kintamieji

Kintamieji yra įprasta ir reikalinga bet kurios programavimo kalbos dalis. Galima deklaruoti „Bash“ kintamuosius keliais būdais. Priskirdami bet kurio kintamojo vertę, nereikia naudoti jokių simbolių. Tačiau, skambindami kintamojo vertei, turėsite naudoti $ ženklas kintamojo pradžioje.

Kintamuosius galite naudoti terminale arba kaip scenarijus. Vykdykite toliau pateiktas komandas savo terminale.

myWebsite = "Fosslinux.com "echo $ myWebsite

Kintamųjų naudojimas terminale

Dabar sukurkime „bash“ scenarijų, kuris paima du vartotojo įvestis ir saugo juos kintamuosiuose $ x ir $ y. Tada scenarijus patikrins, ar abi reikšmės yra lygios, ar ne.

#!/ bin / bash echo "Įveskite pirmąjį skaičių" perskaitykite aidą "Įveskite antrąjį skaičių" perskaitykite b, jei [[$ a -eq $ b]], tada aidas "Skaičiai yra lygūs", kita "aidas" Skaičiai nėra lygūs "fi

Išsaugokite scenarijų ir paleiskite jį. Iš žemiau esančio paveikslėlio galite pamatyti, kad mes įvedėme skirtingas reikšmes, o scenarijus galėjo patikrinti, ar jie yra lygūs, ar ne.

Bash kintamieji

Dabar pažvelkime į kodą atidžiau. Pirmieji du aido teiginiai paragina vartotoją įvesti pirmąjį ir antrąjį skaičius. The skaityti komanda lauks, kol vartotojas įves numerį ir išsaugos jį nurodytame kintamajame. Mūsų atveju tai yra a ir b. Tada turime teiginį „if“, kuris patikrina, ar abi reikšmės yra lygios, ar ne.

Sąlyginis pareiškimas

Bet kuria programavimo kalba sąlyginiai teiginiai kontroliuoja programos srautą. Kodo dalis bus vykdoma tik įvykdžius tam tikrą sąlygą. Kai kurie dažniausiai pasitaikantys sąlyginiai teiginiai apima „jei-tada-kitas“ ir „atvejis.Žemiau pateikiama pagrindinė „if-then-else“ sakinio sintaksė.

jei [[sąlyga]] tada  Kitas  fi

Pažvelkite į toliau pateiktą scenarijų, kuriame naudojamas sąlyginis sakinys „jei-tada-dar“.

#!/ bin / bash echo „Įveskite savo amžių“ skaitymo amžius, jei ((amžius> 18)), tada aidas „Jūs galite eiti į vakarėlį“ dar kitaip aidas „Jūs negalite eiti į vakarėlį“ fi

Basho sąlyginiai teiginiai

Peržiūrėkime aukščiau esantį scenarijų. Mes turime aidas teiginys, raginantis vartotojus įvesti savo amžiaus skaičių. The skaityti sakinyje saugomas amžius, įvestas į kintamąjį „amžius.Tada mes turime sąlyginį teiginį, jei prieš nurodant vartotojui, patikrinama, ar amžius yra didesnis nei 18 metų.

Kilpos

Kilpai paprastai naudojami, kai norite kelis kartus vykdyti kodo dalį. Pavyzdžiui, jei norėčiau pakartoti 1000 teiginio „Sveiki atvykę į„ Fosslinux ““ eilučių, pareikalausiu 1000 atgarsio sakinių. Tačiau naudojant kilpas, viskas, ką man reikia padaryti, tai nurodyti, kiek kartų noriu, kad pareiškimas būtų pakartotas ar atspausdintas terminale. Bash palaiko trijų tipų kilpas; „Loop“, „Loop“ ir „Iki Loop“. Pažvelkime į kiekvieną iš jų.

„A For Loop“ naudojamas kartojant nurodytų duomenų sąrašą arba masyvą. Žemiau pateikiama pagrindinė „Bash For Loop“ sintaksė;

už vertę 1 2 3 4 5… N atlikite instrukciją1 instrukcija2 nurodymą-N atlikta

arba,

už VALUE faile1 file2 file3 atlikite komandą1 dėl $ VALUE utasítás2 nurodymo-N atlikta

Pažvelkite į toliau pateiktą scenarijų. Tai kartojasi per nurodytas savaitės dienas ir spausdina jas eilutėje po terminalą.

#Perskaitykite savaitės dienos pavadinimą kiekvienoje pirmadienio antradienio trečiadienio, ketvirtadienio, penktadienio, šeštadienio, sekmadienio ciklo iteracijoje, atlikite „$ day“ atkūrimą

Išsaugokime scenarijų kaip „ForLoop“.sh ir jį įvykdyti. Žemiau pateikiama išvesties ekrano kopija.

Dėl kilpos

Tai tik paprastas pavyzdys, ką galite padaryti naudodami „For Loop“. Taip pat galite sujungti jį su sąlyginiais teiginiais, kad atliktumėte tam tikrą užduotį.

„Nors ciklas“ vykdo konkrečią užduotį, o tam tikra sąlyga išlieka tiesa. Kiekvienoje iteracijoje ciklas pirmiausia patikrins būseną prieš vykdydamas instrukcijas. Kai sąlyga yra klaidinga, ciklas baigsis. Pagrindinė „bash while loop“ sintaksė yra tokia:

o [BŪKLĖ] atlikite [KOMANDAS]

Pavyzdžiui, galime turėti scenarijų, kuris atspausdins pareiškimą „Sveiki atvykę į FOSSLINUX.KOM “ 20 kartų, kol kintamasis X bus nustatytas į 20. Pabandykime praktiškai tai įgyvendinti. Pažvelkite į toliau pateiktą scenarijų.

#!/ bin / bash x = 1, o [$ x -le 20] aidi "Sveiki atvykę į FOSSLINUX.COM "x = $ (($ x + 1)) atlikta

Išsaugokime scenarijų kaip Nors „loop“.sh ir jį įvykdyti. Žemiau pateikiama išvesties ekrano kopija.

Nors kilpa

Pažvelkime į aukščiau esantį scenarijų „Nors kilpa“. Pirmiausia deklaruojame kintamąjį X, suteikiant jam 1 reikšmę. Tada mes sukuriame „While“ teiginį, kuris išleidžia teiginį „Sveiki atvykę į FOSSLINUX.COM “, o X yra mažiau nei 20. Galiausiai, po kiekvieno kartojimo mes padidiname X po vieną.

„Bash Iki“ kilpos naudojamos vykdant nurodymų ar komandų rinkinį tol, kol nustatyta sąlyga įvertinama kaip klaidinga. Žemiau pateikiama pagrindinė „Iki ciklo“ sintaksė.

kol [BŪKLĖ] atliks [INSTARUCTIONS / COMMANDS]

Panašiai kaip „While Loop“, „Iki Loop“ pirmiausia įvertina nustatytą sąlygą prieš vykdydamas instrukcijas ar komandas. Jei būklė įvertinama kaip klaidinga, vykdomos instrukcijos. Kilpa nutraukiama, kai sąlyga įvertinama kaip teisinga. Pažvelkite į žemiau pateiktą pavyzdį.

#!/ bin / bash count = 0, kol [$ count -gt 5] atliks echo skaitiklį: $ count ((count ++)) atlikta

Išsaugoję ir paleidę aukščiau esantį scenarijų, gauname žemiau pateiktą išvestį:

Iki kilpos

Pirmiau pateikti scenarijai pirmiausia sukuria kintamųjų skaičių ir nustato jį į nulį (0). Tai yra sąlyga, kuri kontroliuoja mūsų programos srautą. „Iki ciklo“ patikrina, ar skaičiaus vertė yra didesnė nei 5. Jei ne, jis atsispausdins pateiktas instrukcijas. Tačiau jei vertė yra didesnė nei 5, kilpa tuoj pat nutrūks. Galiausiai skaičiaus vertę padidiname 1 (skaičius ++).

„Bash“ funkcijos

Programuojant ir scenarijuojant, funkcijos naudojamos tam, kad būtų galima naudoti pakartotinai naudojamą kodo dalį, reikalingą tam tikrai užduočiai atlikti. Todėl, jei turite panašių komandų, kurias norite vykdyti skirtingose ​​scenarijaus dalyse, jums nereikia pakartotinai rašyti šių komandų. Įtraukite juos į funkciją ir vietoj to vykdykite funkciją.
Žemiau pateikiama pagrindinė Bash funkcijos sintaksė.

funkcijos_pavadinimas ()    

arba,

funkcija function_name    

Sukurkime paprastą scenarijų, kuriame būtų naudojamos funkcijos. Pirmiausia sukuriame funkciją, vadinamą „myFunction“, kuri iškviečia teiginį „Sveiki, aš esu pirmoji funkcija“. Antroji funkcija „myCities“ yra šiek tiek pažengusi, nes reikia argumentų. Argumentai pateikiami paskambinus funkcijos pavadinimui. Jie pasiekiami naudojant funkciją kaip 1 USD.

#!/ bin / bash myFunction () echo "Sveiki, aš esu pirmoji funkcija" echo "Sveiki, aš esu pirmoji funkcija" echo echo "Tai yra antroji funkcija" funkcija myCities () echo Hello $ 1 myFunction myCities Vašingtonas, D.„C myCities Phoenix“

Išsaugoję ir įvykdę scenarijų, gauname žemiau pateiktą išvestį.

Funkcijos

„Bash“ meniu

Rašydami scenarijų, kad atliktumėte išplėstinę užduotį, gali reikėti, kad vartotojas pasirinktų vieną parinktį iš kelių terminale rodomų parinkčių. Norėdami tai pasiekti, mes naudosime bash pasirinkite komandą.

Tai sukuria paprastą meniu scenarijų, kuris paskatins vartotojus iš sąrašo pasirinkti mėgstamus „Linux“ paskirstymus. Pažvelkite į toliau pateiktą scenarijų.

#!/ bin / bash # Spausdinti pranešimą vartotojui aidas „Pasirinkite savo mėgstamą„ Linux “paskirstymą“ pasirinkite distro Ubuntu „Fedora OpenSUSE DeepIN Parrot ArchLinux Kali“ # Spausdinkite pasirinktą reikšmę, jei [[$ distro == "Išeiti"]], tada išeikite iš dar 0 echo „Pasirinktas„ Linux “platinimas yra $ distro“

Išsaugokime scenarijų kaip meniu.sh ir jį įvykdyti. Gauname išvestį žemiau.

„Bash“ meniu

Aukščiau pateiktame scenarijuje turime septynių „Linux“ paskirstymo sąrašą, kurį vartotojas pasirinks. Po to, kai jie pasirenka, jis saugomas kintamajame distro o vėliau atspausdinta sujungiant virvele „Pasirinktas„ Linux “platinimas yra.“ „Bash select“ meniu gali būti gana naudingas, ypač kai turite kelis scenarijus, atliekančius skirtingas užduotis, ir reikia pasirinkti tą, kurį jie nori vykdyti.

Aritmetika

Kiekviena programavimo kalba palaiko aritmetinių operacijų atlikimą, o „bash“ scenarijai nėra išimtis. Tačiau tai, kaip atliekame aritmetines operacijas, yra šiek tiek kitoks. Žemiau yra vienas iš būdų, kaip galite atlikti aritmetines operacijas bash. Mes apžvelgsime keturis aritmetinių operacijų tipus - suma, dalyba ir daugyba.

#!/ bin / bash # Apskaičiuokite sumos rezultatą = $ ((70 + 15)) # Atspausdinkite sumos reikšmę echo "suma = $ rezultatas" # Apskaičiuokite dalijimo rezultatą = $ ((100/25)) # Spausdinkite padalinio vertės aidą "padalijimas = $ rezultatas "#Suskaičiuokite daugybos rezultatą = $ ((15 * 15)) aidas" Padauginimas = $ rezultatas "

Išsaugokime pirmiau pateiktą scenarijų kaip aritmetinį.sh ir jį įvykdyti. Gauname išvestį žemiau.

Aritmetika

Išvada

Tai yra išsamus pradedančiųjų vadovas norint pradėti naudoti „Bash“ scenarijus. Tačiau yra daugiau „Bash“, išskyrus tai, kas aprašyta šioje pamokoje. Viena iš vietų, kurią rekomenduočiau tobulinti savo įgūdžius, yra GNU „Bash Reference Manual“. Jei susiduriate su bet kokiomis problemomis ar komentuojate šį įrašą, nedvejodami paspauskite žemiau pateiktus komentarus.

Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...
Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...
Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...