Algajate juhend

Bashi skriptimise õpetus algajatele

Bashi skriptimise õpetus algajatele

Kui hakkate Linuxi süsteemidega alustama, siis nt „Shelli skriptimine” või "Bashi skriptimine”Võib olla üsna tavaline - aga mida need tähendavad? Enne kui asume üksikasjadesse, võib Bashi skriptide õppimine säästa aega erinevate süsteemiülesannete täitmisel ja täitmisel ning paremini mõista Linuxi käsurida (terminali) ja automatiseerida mitut süsteemi ülesannet.

Mis on Bash?

Bash, lühend "Bourne-Again-Shell" on GNU operatsioonisüsteemi Unixi shelli- või käsukeele tõlk. See on olnud Linuxi distributsioonide ja Apple macOS-i väljaandmise peamine Shell enne macOS Catalinat. Bash on saadaval ka Windows 10 jaoks Windowsi allsüsteemi kaudu Linuxile.

Bash töötab tavaliselt tekstiaknas, mida tavaliselt nimetatakse Terminaliks, kus kasutajad sisestavad käske erinevate ülesannete täitmiseks. Bash saab täita ka faili kirjutatud käske, meetodit, millele viidatakse „Bash skriptimine.”

Erinevus Bashi ja Shelli skriptide vahel

Shelli skriptimine ja Bashi skriptimine pole samad asjad. Bashi skriptimisega kasutate selgesõnaliselt bashi kesta. Teisest küljest võib Shelli skriptimine olla üsna lai sõna, kuna meil on peale Bashi saadaval ka muid kestasid. Mõned kõige tavalisemad on Korn (ksh), C-kest (csh), Z-kest (zsh) ja Bash-kest (sh). Siiski ei oleks üllatav, kui leiaksid inimesi, kes kasutavad bashi skripte ja shelliskripte samamoodi. Meie postitus Top 6 avatud lähtekoodiga kestade kohta Linuxis annab nende kestade üksikasjaliku kirjelduse.

Selles postituses vaatleme Bashi skripte. Vaikimisi kasutavad paljud saadaval olevad Linuxi distributsioonid Bashi kestat. Vaadake meie postitust algajatele mõeldud 6 parima Linuxi jaotuse kohta. Praeguses Linuxi jaotuses kasutatava kesta kinnitamiseks käivitage terminalis käsk.

kaja $ SHELL

kest

Ülaltoodud pildilt näete, et minu süsteemi vaiketõlk on bash. Praegu töötan Ubuntu 20-ga.04 LTS. Sukeldume sisse!

Bashi skriptide mõistmine

Bashi skriptid on tekstifailid, mis sisaldavad bashi käske, mis täidetakse erinevate ülesannete täitmiseks. Nende skriptide kirjutamiseks vajate ainult lihtsat tekstiredaktorit nagu gedit, lehepadi, vim, nano ja palju muud. Ärge unustage skripte salvestada a-ga .sh laiendina ja lihttekstina ja mitte rikkalikuna. Üks minu lemmiktoimetajatest, mida ma skriptide kirjutamiseks kasutan, on nano-redaktor.

Nimetamine, õiguste määramine ja Bashi skripti käivitamine

Nagu eespool selgitatud, veenduge, et kasutate .sh laiendus teie bash-skriptidele. Näiteks võib teil olla nimega skript fosslinux_backup.sh. Parim oleks aga, kui oleksite skriptide nimetamisel ettevaatlik. Näiteks soovib enamik inimesi salvestada suurema osa oma skriptidest testina.”Enamikule tundmatu on Unixi sisseehitatud käsk test, mis kontrollib failitüüpe ja võrdleb väärtusi. Programmi konfliktide vältimiseks saate käsu mis abil kontrollida, kas teie skripti nimega programm on olemas.

mis [käsk] e.g milline test

Milline käsk

Ülaltoodud väljundist näeme, et test on juba sisseehitatud käsk. Seetõttu ei nimeta programmide vaheliste konfliktide vältimiseks ühtegi oma skripti nimeks “Test.”

Skripti käivitamiseks iga kasutaja jaoks kasutage järgmist käsku:

chmod + x [skript.sh]

Skripti käivitamiseks praeguse kasutaja jaoks kasutage järgmist käsku:

chmod u + x [skript.sh]

Nüüd skripti käivitamiseks käivitage järgmine käsk:

./ [skripti_nimi]

Ülaltoodud meetodi abil saate aru, et peate kasutama cd käsk skripti sisaldavasse kataloogi liikumiseks või skripti tee edastamiseks. Sellel on aga lahendus. Salvestage skriptid prügikast kodukataloogis olev kataloog.

Hiljutiste värskenduste abil ei ole enamik levitamisi komplektiga kaasas prügikast vaikimisi kaust. Seetõttu peate selle looma käsitsi. Asetades oma skriptid sellesse kausta, saate skripti käivitada, tippides selle nime terminali ilma cd ja ./ käsud.

Bashi skriptimise juhised

Enne esimese skripti kirjutamist on teil mõned juhised, mida peate skriptide kirjutamisel mõistma.

The #!/ bin / bash (Hash-Bang Hack) lause on tee kestani, mida kasutame. Kui kasutate mõnda muud kestat, peaksite seda teed muutma. Mõistame, et kõik kommentaarid algavad tähega # sümbol. Kui aga järgneb a (!) Hash-Bang Hackis on skript sunnitud käivitama selle reaga tähistatud kestaga. Meie puhul on see Bashi kest.

Teie esimene Bashi skript

Nagu enamik programmeerimiskeeli, kirjutame ka skripti, mis prindib "Tere, Maailm" avaldus täidetuna. Avage oma lemmiktekstiredaktor ja kleepige allolevad käsud. Salvestage tekstifail nimega fossTereWorld.sh või mõni muu nimi, mis pole sisseehitatud käsk.

#!/ bin / bash #Skript trükib terminali kajale "Tere maailm" teksti "Tere maailm"

Kui olete faili salvestanud, muutke see käivitatavaks, käivitades alltoodud käsu:

chmod + x fossHelloWorld.sh

Nüüd käivitage see alloleva käsuga:

./ fossHelloWorld.sh

Esimene skript

Ülaloleval skriptil on ainult kolm rida. Esimene on Hash-Bang Hack, mida oleme eespool arutanud, teine ​​on kommentaar ja kolmas on käsk, mis käivitatakse. Pange tähele, kommentaare ei täideta kunagi.

Vaatame teisi bashi skriptimise funktsioone, mida saate kasutada.

Kaja käsk

Käsku Echo kasutatakse väljundi printimiseks Linuxi käsureale või terminali. Kui olete arendaja ja olete varem PHP-ga töötanud, peate olema ka selle käsuga kokku puutunud. Kirjutame selle käsu toimimise näitamiseks väikese bashi skripti.

#!/ bin / bash # Trükime esimese rea kaja "See on Fosslinux.com - Uue reaga "# Trükime teise lause ilma uue rea kajata -n" See on Fosslinux - uut rida pole "

Salvestage skript, määrake vajalikud õigused ja käivitage see.

Bash Echo

Koodi mõistmiseks prindib esimene kajakäsk lause ja läheb järgmisele reale. Teisel kajakäsul on -n argument, mis takistab skripti järgmisele reale minemist. Echo käsuga saate kasutada paljusid muid võimalusi, sealhulgas muutujaid, nagu näeme allpool.

Muutujad

Muutujad on mis tahes programmeerimiskeele tavaline ja vajalik osa. Bashi muutujaid saab deklareerida mitmel viisil. Väärtuse määramisel mis tahes muutujale ei pea te kasutama ühtegi sümbolit. Muutuja väärtuse kutsumisel peate siiski kasutama $ märk muutuja alguses.

Muutujaid saate kasutada terminalis või skriptidena. Käivitage oma terminalis allpool olevad käsud.

myWebsite = "Fosslinux.com "echo $ myWebsite

Muutujate kasutamine terminalis

Nüüd loome bashi skripti, mis võtab kasutajalt kaks sisendit ja salvestab need muutujatesse $ x ja $ y. Seejärel kontrollib skript, kas need kaks väärtust on võrdsed või mitte.

#!/ bin / bash kaja "Sisestage esimene number" lugege kaja "Sisestage teine ​​number" loe b, kui [[$ a -eq $ b]], siis kaja "Numbrid on võrdsed" muidu kaja "Numbrid pole võrdsed" fi

Salvestage skript ja käivitage see. Allolevalt pildilt näete, et sisestasime erinevad väärtused ja skript suutis kontrollida, kas need on võrdsed või mitte.

Bashi muutujad

Vaatame nüüd koodi lähemalt. Kaks esimest kajalauset paluvad kasutajal sisestada esimene ja teine ​​number. The lugeda käsk ootab, kuni kasutaja sisestab numbri ja salvestab selle määratud muutujasse. Meie puhul on see nii a ja b. Seejärel on meil lause if, mis kontrollib, kas need kaks väärtust on võrdsed või mitte.

Tingimuslik avaldus

Mis tahes programmeerimiskeeles kontrollivad tingimuslaused programmi voogu. Koodiosa käivitatakse ainult siis, kui teatud tingimus on täidetud. Mõned kõige tavalisemad tingimuslaused hõlmavad “kui-siis-veel” ja “juhtumit.”Allpool on lause if-then-else põhisüntaks.

kui [[tingimus]] siis  muud  fi

Heitke pilk allpool olevale skriptile, mis kasutab tingimuslauset “kui-siis-muu”.

#!/ bin / bash kaja "Sisesta oma vanus" loe vanust, kui ((vanus> 18)), siis kaja "Sa võid peole minna" muidu kaja "Sa ei saa peole minna" fi

Bashi tingimuslikud avaldused

Vaatame ülaltoodud skripti läbi. Meil on kaja avaldus, mis palub kasutajatel sisestada nende vanusenumber. The lugeda avaldus salvestab muutujale „vanus” sisestatud vanuse."Seejärel on meil enne kasutaja juhendamist tingimuslik lause, mis kontrollib, kas vanus on üle 18 aasta.

Silmused

Silmuseid kasutatakse tavaliselt siis, kui soovite kooditükki mitu korda käivitada. Näiteks kui ma tahan kajata lause „Tere tulemast Fosslinuxisse” 1000 rida, siis vajaksin 1000 kajalauset. Silmuste puhul on mul aga vaja vaid täpsustada, mitu korda soovin, et lause kajastataks või trükitaks terminali. Bash toetab kolme tüüpi silmuseid; For Loop, While Loop ja Kuni Loop. Vaatame neid kõiki.

A Loopi jaoks kasutatakse kordamiseks määratud andmete loendi või massiivi kaudu. Allpool on Bash For Loopi põhisüntaks;

väärtuse jaoks väärtuses 1 2 3 4 5… N ei juhist1 juhist 2 juhist-N tehtud

või,

väärtusele VALUE failis1 fail2 fail3 tehke juhis1 väärtusel VALUE käsk2 käsuga-N tehtud

Heitke pilk allpool olevale skriptile. See kordab antud nädalapäevi läbi ja prindib need rea kaupa terminali.

# Loe esmaspäeva teisipäeva, kolmapäeva, neljapäeva, reede, laupäeva, pühapäeva igasse tsükli iteratsiooni nädalapäeva nime, kui kaja "$ day" on valmis

Salvestame skripti nimega ForLoop.sh ja täida see. Allpool on ekraanipilt väljundist.

Loopi jaoks

See on vaid lihtne näide selle kohta, mida saate teenuse For Loop abil teha. Konkreetse ülesande täitmiseks võite selle kombineerida ka tingimuslausetega.

Kuigi Loop täidab konkreetse ülesande, samal ajal kui konkreetne tingimus jääb tõeks. Igas iteratsioonis kontrollib silmus enne juhiste täitmist kõigepealt tingimust. Kui tingimus on Vale, siis silmus lõpeb. Bash Kuigi silmus põhisüntaks on järgmine:

samal ajal kui [CONDITION] tee [COMMANDS] valmis

Näiteks võib meil olla skript, mis printib avalduse „Tere tulemast FOSSLINUXi.KOM ” 20 korda, kuni muutuja X väärtuseks määratakse 20. Proovime seda praktiliselt rakendada. Heitke pilk allpool olevale skriptile.

#!/ bin / bash x = 1, samal ajal kui [$ x -le 20] teeb kaja "Tere tulemast FOSSLINUXi.COM "x = $ (($ x + 1)) tehtud

Salvestame skripti nimega WhileLoop.sh ja täida see. Allpool on ekraanipilt väljundist.

Kuigi Loop

Vaatame ülaltoodud skripti While Loop. Esmalt deklareerime muutuja X, andes sellele väärtuse 1. Seejärel loome lause Kuigi, mis väljastab avalduse „Tere tulemast FOSSLINUXi.COM ”, samas kui X on alla 20. Lõpuks suurendame X-i iga korduse järel.

Silmuseid Bash Kuni kasutatakse käskude või käskude komplekti täitmiseks seni, kuni määratud tingimus on väär. Allpool on kuni silmuse põhisüntaks.

kuni [CONDITION] tehke [INSTARUCTIONS / COMMANDS]

Sarnaselt silmusega Samas hindab enne käsku enne käskude või käskude täitmist seatud tingimust kõigepealt. Kui seisundi väärtus on vale, täidetakse juhised. Silmus lõpetatakse, kui tingimus on tõene. Vaadake allpool toodud näidet.

#!/ bin / bash count = 0 kuni [$ count -gt 5] do kajaloendur: $ count ((count ++)) valmis

Pärast ülaltoodud skripti salvestamist ja käivitamist saame väljundi allpool:

Kuni Loopini

Ülaltoodud skriptid loovad kõigepealt muutujate arvu ja määravad selle nulli (0). See on tingimus, mis kontrollib meie programmi voogu. Kuni silmuseni kontrollitakse, kas loendusväärtus on suurem kui 5. Kui see pole nii, siis prindib see edastatud juhised. Kui väärtus on aga suurem kui 5, lõpeb silmus kohe. Lõpuks suurendame loendusväärtust 1 võrra (arv ++).

Bash funktsioonid

Programmeerimisel ja skriptimisel kasutatakse funktsioone konkreetse ülesande täitmiseks vajaliku korduvkasutatava koodijupi hoidmiseks. Seega, kui teil on sarnaseid käske, mida soovite oma skripti erinevates osades täita, ei pea te neid käske korduvalt kirjutama. Sulge need funktsiooni ja täidad selle asemel funktsiooni.
Allpool on Bashi funktsiooni põhisüntaks.

funktsiooni_nimi ()    

või,

funktsioon function_name    

Loome lihtsa skripti, mis kasutab funktsioone. Kõigepealt loome funktsiooni nimega "myFunction", mis väljastab kutsumisel avalduse "Tere, ma olen esimene funktsioon". Teine funktsioon „myCities“ on natuke arenenud, kuna see võtab vastu argumente. Argumendid antakse pärast funktsiooni nime kutsumist. Neile pääseb funktsioonis juurde kui $ 1.

#!/ bin / bash myFunction () echo "Tere, ma olen esimene funktsioon" kaja "Tere, ma olen esimene funktsioon" kaja kaja "See on teine ​​funktsioon" funktsioon myCities () kaja Tere $ 1 myFunction myCities Washington, D.C myCities Phoenix

Pärast skripti salvestamist ja käivitamist saame allpool oleva väljundi.

Funktsioonid

Bashi menüüd

Kui kirjutate skripti täpsema ülesande täitmiseks, peate võib-olla kasutajat valima terminalis kuvatud mitme valiku seast ühe valiku. Selle saavutamiseks kasutame bashi valige käsk.

See loob lihtsa menüüskripti, mis sunnib kasutajaid loendist oma lemmik Linuxi distributsioonid valima. Heitke pilk allpool olevale skriptile.

#!/ bin / bash # Prindi sõnum kasutajale kaja "Valige oma lemmik Linuxi levitamine" valige Ubuntu Fedro OpenSUSE DeepIN Parrot ArchLinux Kali levitamine # Prindi valitud väärtus, kui [[$ distro == "Exit"]], siis väljuge 0 muust kaja "Valitud Linuxi levitamine on $ distro" tehtud

Salvestame skripti menüüna.sh ja täida see. Saame väljundi allpool.

Bashi menüüd

Ülaltoodud skriptis on meil nimekiri Seitsmest Linuxi jaotusest, mille kasutaja valib. Pärast valiku tegemist salvestatakse see muutujasse distro ja hiljem trükitud, ühendades selle nööriga „Valitud Linuxi levitamine on.” Bashi valitud menüüd võivad olla üsna kasulikud, eriti kui teil on mitu skripti, mis täidavad erinevaid ülesandeid, ja tuleb valida see, mida nad soovivad täita.

Aritmeetika

Iga programmeerimiskeel toetab aritmeetiliste toimingute tegemist ja bashi skriptimine pole erand. See, kuidas me aritmeetilisi toiminguid teeme, on siiski veidi erinev. Allpool on üks viis, kuidas saate bashis aritmeetilisi toiminguid teha. Vaatame nelja tüüpi aritmeetilisi toiminguid - summa, jagamine ja korrutamine.

#!/ bin / bash # Arvuta summatulemus = $ ((70 + 15)) # Prindi summa väärtus kaja "summa = $ tulemus" # Arvuta jagamise tulemus = $ ((100/25)) # Prindi jao väärtuse kaja "jagamine = $ result "#Calculate Korrutise tulemus = $ ((15 * 15)) kaja" Korrutamine = $ tulemus "

Salvestame ülaltoodud skripti aritmeetikana.sh ja täida see. Saame väljundi allpool.

Aritmeetika

Järeldus

See on Bashi skriptimisega alustamise täielik juhend algajatele. Bashil on aga muud, kui selles õpetuses käsitletud. Üks kohtadest, mida soovitaksin oma oskuste edendamiseks, on GNU Bashi teatmik. Kui teil on selle postituse suhtes probleeme või kommenteerite, siis võite palun tabada allolevaid kommentaare.

Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...
0 A.D. Õpetus
Paljudest strateegiamängudest on 0 A.D. suudab silma paista põhjaliku tiitli ja väga sügava taktikalise mänguna, hoolimata sellest, et see on avatud l...
Unity3D õpetus
Sissejuhatus Unity 3D-sse Unity 3D on võimas mängude arendamise mootor. See on platvormidevaheline, mis võimaldab teil luua mänge mobiilseadmetele, ve...