Vodnik za začetnike

Vadnica za skriptiranje Bash za začetnike

Vadnica za skriptiranje Bash za začetnike

Če začnete uporabljati sisteme Linux, so izrazi kot "Shell skript" ali »Bash skript”So lahko zelo pogosti - kaj pa pomenijo? Preden se spustimo v podrobnosti, vam lahko z učenjem skript Bash prihranite čas pri izvrševanju in izvajanju različnih sistemskih nalog ter bolje razumete ukazno vrstico (Terminal) Linuxa in avtomatizirate več sistemskih nalog.

Kaj je Bash?

Bash, kratica za "Bourne-Again-Shell," je tolmač lupine Unix ali ukaznega jezika za operacijski sistem GNU. Bila je glavna lupina za distribucije Linuxa in izdaje Apple macOS pred macOS Catalina. Bash je na voljo tudi za Windows 10 prek podsistema Windows za Linux.

Bash se običajno izvaja v besedilnem oknu, splošno znanem kot Terminal, kjer uporabniki vnesejo ukaze za izvajanje različnih nalog. Bash lahko izvaja tudi ukaze, zapisane v datoteki, metoda, imenovana “Bash skript."

Razlika med skripti Bash in skriptom Shell

Skriptiranje lupine in skripti Bash nista isti stvari. Pri skriptiranju Bash izrecno uporabljate lupino bash. Po drugi strani pa je skript za Shell lahko zelo široka beseda, saj imamo na voljo tudi druge lupine, ki niso Bash. Nekateri najpogostejši vključujejo Korn (ksh), lupino C (csh), lupino Z (zsh) in lupino Bash (sh). Vendar ne bi bilo presenečenje, če bi ljudje, ki uporabljajo bash skripte in lupinsko skriptiranje zamenljivo pomenili isto stvar. Naš prispevek o Top 6 odprtokodnih lupinah za Linux vsebuje podroben opis teh lupin.

V tem prispevku si bomo ogledali Bash skript. Mnogo razpoložljivih distribucij Linuxa privzeto uporablja lupino Bash. Oglejte si naš prispevek o 6 najboljših distribucijah Linuxa za začetnike. Če želite potrditi lupino, ki jo uporabljate na trenutni distribuciji Linuxa, izvedite ukaz na terminalu.

echo $ SHELL

lupino

Na zgornji sliki lahko vidite, da je privzeti tolmač v mojem sistemu bash. Trenutno uporabljam Ubuntu 20.04 LTS. Potopimo se noter!

Razumevanje skriptov Bash

Bash skripte so besedilne datoteke, ki vsebujejo ukaze bash, ki se izvajajo za izvajanje različnih nalog. Za pisanje teh skriptov potrebujete le preprost urejevalnik besedil, kot so gedit, listna plošča, vim, nano in še veliko več. Ne pozabite shraniti skript z .sh pripona in kot navadno besedilo in ne obogateno besedilo. Eden mojih najljubših urejevalnikov, ki ga uporabljam za pisanje scenarijev, je urejevalnik nano.

Poimenovanje, dodelitev dovoljenj in izvajanje skripta Bash

Kot je razloženo zgoraj, se prepričajte, da uporabljate .sh za vaše bash skripte. Na primer, lahko imate skript z imenom fosslinux_backup.sh. Vendar bi bilo najbolje, če bi bili pri poimenovanju svojih skriptov previdni. Na primer, večina ljudi rada shrani večino svojih skript kot »test«.”Najbolj neznan je vgrajen ukaz Unix, imenovan test, ki preverja vrste datotek in primerja vrednosti. S katerim ukazom lahko preverite, ali obstaja program z istim imenom kot skript, da preprečite morebitne spore v programu.

ki [ukaz] e.g kateri preskus

Kateri ukaz

Iz zgornjega izhoda lahko vidimo, da je test že vgrajen ukaz. Zato, da bi se izognili konfliktom med programi, nobenega od svojih skriptov ne bom imenoval kot “Test."

Če želite, da je skript izvedljiv za vsakega uporabnika, uporabite spodnji ukaz:

chmod + x [skript.sh]

Če želite, da je skript izvedljiv za trenutnega uporabnika, uporabite spodnji ukaz:

chmod u + x [skript.sh]

Zdaj za zagon skripta izvedite spodnji ukaz:

./ [ime_skripte]

Z zgornjo metodo boste spoznali, da boste morali uporabiti cd ukaz, da se premaknete v imenik s skriptom ali prenesete pot do skripta. Vendar je temu mogoče rešiti. Shranite svoje skripte v zabojnik v domačem imeniku.

Z najnovejšimi posodobitvami večina distribucij nima priloženih zabojnik mapa privzeto. Zato ga boste morali ustvariti ročno. Če postavite svoje skripte v to mapo, lahko skript izvedete tako, da na terminalu vnesete njegovo ime, ne da bi uporabljali cd in ./ ukazi.

Smernice za skriptiranje Bash

Pred pisanjem prvega skripta je nekaj smernic, ki jih morate razumeti pri pisanju skriptov.

The #!/ bin / bash Izjava (Hash-Bang Hack) je pot do lupine, ki jo bomo uporabili. Če uporabljate drugo lupino, bi morali to pot urediti. Zavedamo se, da se vsi komentarji začnejo z # simbol. Ko pa sledi a (!) v Hash-Bang Hack, je skript prisiljen zagnati z lupino, na katero kaže ta vrstica. V našem primeru gre za lupino Bash.

Vaš prvi skript Bash

Kot večina programskih jezikov bomo tudi mi napisali skript, ki natisne "Pozdravljen, svet" stavek ob izvedbi. Odprite svoj najljubši urejevalnik besedil in prilepite spodnje ukaze. Shranite besedilno datoteko kot fossHelloWorld.sh ali katero koli drugo ime, ki ni vgrajen ukaz.

#!/ bin / bash # Ta skript bo na terminalu "Hello World" natisnil "Hello World"

Ko datoteko shranite, jo naredite izvršljivo z naslednjim ukazom:

chmod + x fossHelloWorld.sh

Zdaj ga zaženite s spodnjim ukazom:

./ fossHelloWorld.sh

Prvi scenarij

Zgornji skript ima samo tri vrstice. Prvi je Hash-Bang Hack, o katerem smo govorili zgoraj, drugi je komentar in tretji ukaz, ki se bo izvedel. Upoštevajte, da se komentarji nikoli ne izvršijo.

Oglejmo si druge bash skriptne funkcije, ki jih lahko uporabite.

Echo ukaz

Ukaz Echo se uporablja za tiskanje izhodnih podatkov v ukazni vrstici ali terminalu Linux. Če ste razvijalec in ste že sodelovali s PHP, ste morali naleteti tudi na ta ukaz. Napišimo majhen bash skript, da dokažemo, kako deluje ta ukaz.

#!/ bin / bash # Natisnimo odmev prve vrstice "To je Fosslinux.com - Z novo vrstico "# Natisnimo drugi stavek brez nove vrstice echo -n" To je Fosslinux - Brez nove vrstice "

Shranite svoj skript, dodelite potrebna dovoljenja in ga zaženite.

Bash Echo

Za razumevanje kode prvi ukaz echo natisne stavek in gre v naslednjo vrstico. Drugi ukaz echo ima -n argument, ki preprečuje, da bi skript prešel v naslednjo vrstico. Z ukazom Echo lahko uporabite številne druge možnosti, vključno s spremenljivkami, kot bomo videli spodaj.

Spremenljivke

Spremenljivke so pogost in nujen del vsakega programskega jezika. Spremenljivke Bash lahko razglasimo na več načinov. Pri dodelitvi vrednosti kateri koli spremenljivki vam ni treba uporabiti nobenih simbolov. Ko pa prikličete vrednost spremenljivke, boste morali uporabiti $ znak na začetku spremenljivke.

Spremenljivke lahko uporabljate na terminalu ali kot skripte. Izvedite spodnje ukaze na vašem terminalu.

myWebsite = "Fosslinux.com "echo $ myWeb

Uporaba spremenljivk na terminalu

Zdaj pa ustvarimo bash skript, ki od uporabnika vzame dva vhoda in ju shrani v spremenljivke x x in $ y. Nato bo skript preveril, ali sta vrednosti enaki ali ne.

#!/ bin / bash echo "Vnesite prvo številko" preberite odmev "Vnesite drugo številko" preberite b, če [[$ a -eq $ b]] potem echo "Številke so enake" else echo "Številke niso enake" fi

Shranite skript in ga zaženite. Na spodnji sliki lahko vidite, da smo vnesli različne vrednosti, in skript je lahko preveril, ali so enake ali ne.

Spremenljivke Bash

Zdaj pa si podrobneje oglejmo kodo. Prva dva odmeva zahtevata, da uporabnik vnese prvo in drugo številko. The preberite ukaz bo počakal, da uporabnik vnese številko in jo shrani v določeno spremenljivko. V našem primeru je to a in b. Nato imamo stavek if, ki preverja, ali sta vrednosti enaki ali ne.

Pogojna izjava

V katerem koli programskem jeziku pogojni stavki nadzorujejo potek programa. Del kode se bo izvedel šele, ko bo izpolnjen določen pogoj. Nekateri najpogostejši pogojni stavki vključujejo "če-potem-drugače" in "primer".”Spodaj je osnovna sintaksa stavka if-then-else.

če [[stanje]] potem  drugače  fi

Oglejte si spodnji skript, v katerem je uporabljen pogojni stavek "če-potem-drugače".

#!/ bin / bash echo "Enter Your Age" preberite starost, če ((starost> 18)) nato echo "Lahko greste na zabavo" else echo "Ne morete iti na zabavo" fi

Pogojni izkazi Bash

Pojdimo skozi zgornji scenarij. Imamo odmev izjavo, ki poziva uporabnike, da vnesejo svojo starostno številko. The preberite stavek shrani starost, vneseno v spremenljivko »starost.”Nato imamo pogojno izjavo, če je drugače, ki pred navodilom uporabniku preveri, ali je starost večja od 18 let.

Zanke

Zanke se pogosto uporabljajo, če želite večkrat izvršiti del kode. Če bi na primer želel odmevati 1000 vrstic izjave "Dobrodošli v Fosslinuxu", bi zahteval 1000 odmevov. Pri zankah pa moram le določiti, kolikokrat želim, da se stavek ponovi ali natisne na terminalu. Bash podpira tri vrste zank; Za zanko, medtem ko zanko in dokler zanko. Poglejmo si vsakega od njih.

Zanka For se uporablja za iteracijo po seznamu določenih podatkov ali matrike. Spodaj je osnovna sintaksa Bash For Loop;

za vrednost v 1 2 3 4 5… N ne delajte navodil1 navodil2 navodil-N izvedeno

ali,

za VALUE v datoteki1 datoteka2 datoteka3 naredite navodila1 na $ VALUE navodila2 navodila-N končano

Oglejte si spodnji skript. Ponavlja se skozi dane v tednu in jih natisne na terminalu po vrsticah.

# Preberite ime delavnika v vsaki iteraciji zanke za dan v ponedeljek torek sreda četrtek petek sobota nedelja naredite odmev "$ day" dokončano

Shranimo skript kot ForLoop.sh in ga izvrši. Spodaj je posnetek zaslona rezultata.

Za Loop

To je le preprost primer tega, kar lahko storite s for Loop. Za dokončanje določene naloge jo lahko kombinirate tudi s pogojnimi stavki.

Medtem ko zanka izvede določeno nalogo, medtem ko določen pogoj ostane True. V vsaki ponovitvi bo zanka najprej preverila stanje pred izvajanjem navodil. Ko je pogoj False, se zanka konča. Osnovna sintaksa zanke bash While je naslednja:

medtem ko [CONDITION] opravi [COMMANDS]

Na primer, imamo lahko skript, ki bo natisnil stavek “Dobrodošli v FOSSLINUX.COM " 20-krat, dokler spremenljivka X ni nastavljena na 20. Poskusimo to praktično izvesti. Oglejte si spodnji skript.

#!/ bin / bash x = 1, medtem ko [$ x -le 20] do echo "Dobrodošli v FOSSLINUX.COM "x = $ (($ x + 1)) končano

Shranimo skript kot WhileLoop.sh in ga izvrši. Spodaj je posnetek zaslona rezultata.

Medtem ko Loop

Oglejmo si zgornji skript While Loop. Najprej spremenljivko X razglasimo tako, da ji damo vrednost 1. Nato izdelamo stavek While, ki prikaže stavek »Dobrodošli v FOSSLINUX.COM ”, medtem ko je X manj kot 20. Na koncu po vsaki ponovitvi X povečamo za eno.

Zanke Bash Until se uporabljajo za izvajanje nabora navodil ali ukazov, če nastavljeno stanje oceni na false. Spodaj je osnovna sintaksa Do Loop.

dokler [CONDITION] ne naredite [INSTARUCTIONS / COMMANDS]

Podobno kot zanka While, zanka Before Loop najprej oceni nastavljeni pogoj, preden izvede navodila ali ukaze. Če se stanje oceni na napačno, se izvedejo navodila. Zanka se zaključi, ko se stanje oceni na true. Oglejte si spodnji primer.

#!/ bin / bash count = 0, dokler [$ count -gt 5] ne naredi echo Counter: $ count ((count ++)) done

Ko shranimo in zaženemo zgornji skript, dobimo izhod spodaj:

Do Loop

Zgornji skripti najprej ustvarijo število spremenljivk in ga nastavijo na nič (0). To je pogoj, ki nadzoruje potek našega programa. Do Loop preveri, ali je vrednost štetja večja od 5. Če ni, bo natisnila posredovana navodila. Če pa je vrednost večja od 5, se zanka takoj konča. Na koncu povečamo vrednost štetja za 1 (count ++).

Bash funkcije

Pri programiranju in skriptiranju se funkcije uporabljajo za shranjevanje kosa za večkratno uporabo, potrebnega za izvedbo določene naloge. Če imate torej podobne ukaze, ki jih želite izvajati na različnih delih skripta, vam teh ukazov ni treba večkrat pisati. Zaprite jih v funkcijo in jo namesto tega izvedite.
Spodaj je osnovna sintaksa funkcije Bash.

ime_funkcije ()    

ali,

funkcija ime_funkcije    

Ustvarimo preprost skript, ki uporablja funkcije. Najprej ustvarimo funkcijo, imenovano "myFunction", ki ob klicu prikaže stavek "Pozdravljeni, jaz sem prva funkcija". Druga funkcija, "myCities", je nekoliko napredna, saj zajema posredovane argumente. Argumenti so podani po klicu imena funkcije. V funkciji so dostopni kot 1 USD.

#!/ bin / bash myFunction () echo "Pozdravljeni, jaz sem prva funkcija" echo "Pozdravljeni, jaz sem prva funkcija" echo echo "To je druga funkcija", funkcija myCities () echo Pozdravljeni $ 1 myFunction myCities Washington, D.C myCities Phoenix

Po shranjevanju in izvedbi skripta dobimo spodnji izhod.

Funkcije

Bash meniji

Med pisanjem skripta za napredno nalogo boste morda morali uporabnika izbrati eno možnost med več možnostmi, prikazanimi na terminalu. Da bi to dosegli, bomo uporabili bash izberite ukaz.

Ustvari preprost menijski skript, ki bo uporabnike pozval, da na seznamu izberejo svoje najljubše distribucije Linuxa. Oglejte si spodnji skript.

#!/ bin / bash #Print sporočilo za uporabniški odmev "Izberite svojo najljubšo distribucijo Linuxa" izberite distribucijo v Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali do # Natisnite izbrano vrednost, če [[$ distro == "Exit"]] nato zapustite 0 else echo "Izbrana distribucija Linuxa je $ distro" fi končano

Shranimo skript kot meni.sh in ga izvrši. Rezultat dobimo spodaj.

Bash meniji

V zgornjem skriptu imamo seznam sedmih distribucij Linuxa, ki jih bo uporabnik izbral. Ko opravijo izbor, se shrani v spremenljivko distro in kasneje natisnjen s povezovanjem z nizom »Izbrana distribucija Linuxa je." Meniji za izbiro bash so lahko zelo koristni, še posebej, če imate več skriptov za izvajanje različnih nalog in morate izbrati tistega, ki ga želite izvesti.

Aritmetika

Vsak programski jezik podpira izvajanje aritmetičnih operacij in bash skript ni nobena izjema. Način izvajanja računskih operacij pa je nekoliko drugačen. Spodaj je eden od načinov, kako lahko izvajate aritmetične operacije v bash. Ogledali si bomo štiri vrste aritmetičnih operacij - vsota, deljenje in množenje.

#!/ bin / bash # Izračunaj rezultat vsote = $ ((70 + 15)) # Natisni vrednost vsote odmev "sum = $ rezultat" # Izračunaj rezultat delitve = $ ((100/25)) # Natisni vrednost odseka odsek "delitev = $ rezultat "# Izračunaj rezultat množenja = $ ((15 * 15)) odmev" Množenje = $ rezultat "

Zgornji skript shranimo kot aritmetiko.sh in ga izvrši. Rezultat dobimo spodaj.

Aritmetika

Zaključek

To je popoln začetniški vodnik za začetek uporabe Bash skript. Vendar Bash poleg tega, kar je zajeto v tej vadnici, ponuja še več. Eno od krajev, ki bi jih priporočil za napredovanje svojih veščin, je GNU-jev referenčni priročnik za bash. Če imate kakršne koli težave ali komentirate to objavo, vas prosimo, da pritisnete spodnje komentarje.

Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...
Najboljše laboratorijske igre Oculus App
Če ste lastnik slušalk Oculus, morate biti seznanjeni s stranskim nalaganjem. Sideloading je postopek namestitve vsebine, ki ni shranjena v slušalke. ...
10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...