Iesācēja ceļvedis

Bash Scripting apmācība iesācējiem

Bash Scripting apmācība iesācējiem

Ja sākat darbu ar Linux sistēmām, izmantojiet tādus terminus kā “Shell skripti” vai “Bash skripti”Var būt diezgan izplatīts - bet ko tie nozīmē? Pirms mēs iedziļināmies detaļās, Bash skriptu iemācīšanās var palīdzēt ietaupīt laiku dažādu sistēmas uzdevumu izpildē un izpildē, kā arī labāk izprast Linux komandrindu (termināli) un automatizēt vairākus sistēmas uzdevumus.

Kas ir Bašs?

Bash, saīsinājums "Bourne-Again-Shell" ir Unix čaulas vai komandu valodas tulks GNU operētājsistēmai. Tas ir bijis galvenais Linux izplatīšanas un Apple macOS izlaidumu apvalks pirms macOS Catalina. Bash ir pieejams arī operētājsistēmai Windows 10, izmantojot Windows apakšsistēmu Linux.

Bash parasti darbojas teksta logā, kas parasti pazīstams kā Terminal, kur lietotāji ievada komandas, lai veiktu dažādus uzdevumus. Bash var arī izpildīt komandas, kas ierakstītas failā, metodi, kas minēta kā “Bash skripti.”

Atšķirība starp Bash skriptiem un Shell skriptiem

Shell skripti un Bash skripti nav tās pašas lietas. Izmantojot Bash skriptu, jūs skaidri izmantojat bash apvalku. No otras puses, Shell skripti var būt diezgan plašs vārds, jo mums ir pieejami citi apvalki, izņemot Bash. Daži no visizplatītākajiem ir Korn (ksh), C apvalks (csh), Z apvalks (zsh) un Bash apvalks (sh). Tomēr nebūtu pārsteigums atrast cilvēkus, kuri sinhronizējot bash skriptu un shell skriptu lietošanu, nozīmē to pašu. Mūsu ziņojums par Linux 6 atklātā pirmkoda čaulām sniedz detalizētu šo čaulu aprakstu.

Šajā ziņojumā mēs aplūkosim Bash skriptu izveidi. Pēc noklusējuma daudzos pieejamos Linux izplatījumos tiek izmantots Bash apvalks. Apskatiet mūsu ziņu par 6 labākajiem Linux izplatījumiem iesācējiem. Lai apstiprinātu čaulu, kuru izmantojat pašreizējā Linux izplatīšanā, izpildiet komandu terminālā.

atbalss $ SHELL

apvalks

No attēla iepriekš redzams, ka noklusējuma tulks manā sistēmā ir bash. Pašlaik es darbinu Ubuntu 20.04 LTS. Ienirsim iekšā!

Izpratne par Bash skriptiem

Bash skripti ir teksta faili, kas satur bash komandas, kas tiek izpildītas dažādu uzdevumu veikšanai. Lai rakstītu šos skriptus, jums nepieciešams tikai vienkāršs teksta redaktors, piemēram, gedit, lapu spilventiņš, vim, nano un daudz kas cits. Lūdzu, atcerieties saglabāt skriptus ar .sh paplašinājums un kā vienkāršs teksts, nevis bagātināts teksts. Viens no maniem iecienītākajiem redaktoriem, kuru izmantoju skriptu rakstīšanai, ir nano redaktors.

Nosaukšana, atļauju piešķiršana un Bash skripta izpildīšana

Kā paskaidrots iepriekš, pārliecinieties, vai izmantojat .sh pagarinājums jūsu bash skriptiem. Piemēram, jums var būt skripts ar nosaukumu fosslinux_backup.sh. Tomēr vislabāk būtu, ja jūs piesardzīgi nosauktu savus scenārijus. Piemēram, lielākajai daļai cilvēku patīk saglabāt lielāko daļu savu skriptu kā “testu”.Lielākajai daļai nezināma ir iebūvēta Unix komanda ar nosaukumu test, kas pārbauda failu tipus un salīdzina vērtības. Varat izmantot komandu, kura pārbauda, ​​vai ir programma ar tādu pašu nosaukumu kā jūsu skriptam, lai novērstu jebkādus programmas konfliktus.

kura [komanda] e.g kuru pārbaudi

Kura komanda

No iepriekš minētās izejas mēs varam redzēt, ka pārbaude jau ir iebūvēta komanda. Tāpēc, lai izvairītos no konfliktiem starp programmām, es nevienu savu skriptu nenosaukšu kā "pārbaude.”

Lai skriptu padarītu izpildāmu katram lietotājam, izmantojiet zemāk esošo komandu:

chmod + x [skripts.sh]

Lai skriptu padarītu izpildāmu pašreizējam lietotājam, izmantojiet tālāk norādīto komandu:

chmod u + x [skripts.sh]

Tagad, lai palaistu skriptu, izpildiet tālāk norādīto komandu:

./ [skripta_nosaukums]

Izmantojot iepriekš minēto metodi, jūs sapratīsit, ka jums būs jāizmanto cd komandu pārvietoties direktorijā, kurā ir skripts, vai nodot ceļu uz skriptu. Tomēr tam ir risinājums. Saglabājiet skriptus atkritumu tvertne direktorija, kas atrodas mājas direktorijā.

Izmantojot jaunākos atjauninājumus, lielākā daļa izplatījumu netiek piegādāti atkritumu tvertne mapē pēc noklusējuma. Tāpēc jums tas būs jāizveido manuāli. Ievietojot skriptus šajā mapē, jūs varat izpildīt skriptu, ierakstot tā nosaukumu terminālā, neizmantojot cd un ./ komandas.

Bash skriptu vadlīnijas

Pirms pirmā skripta rakstīšanas ir dažas vadlīnijas, kas jums jāsaprot, rakstot skriptus.

The #!/ bin / bash (Hash-Bang Hack) paziņojums ir ceļš uz čaumalu, kuru izmantosim. Ja izmantojat citu apvalku, jums šis ceļš ir jārediģē. Mēs saprotam, ka visi komentāri sākas ar # simbols. Tomēr, kad seko ar a (!) Hash-Bang Hack, skripts ir spiests izpildīt ar čaulu, uz kuru norāda šī līnija. Mūsu gadījumā tas ir Bash apvalks.

Jūsu pirmais Bash skripts

Tāpat kā vairums programmēšanas valodu, arī mēs rakstīsim skriptu, kas izdrukās "Sveika pasaule" paziņojums, kad tas tiek izpildīts. Atveriet savu iecienīto teksta redaktoru un ielīmējiet zemāk esošās komandas. Saglabājiet teksta failu kā fossHelloWorld.sh vai jebkuru citu nosaukumu, kas nav iebūvēta komanda.

#!/ bin / bash #Šis skripts uz termināļa atbalss "Hello World" izdrukās "Hello World"

Kad fails ir saglabāts, padariet to izpildāmu, izpildot zemāk esošo komandu:

chmod + x fossHelloWorld.sh

Tagad palaidiet to ar zemāk esošo komandu:

./ fossHelloWorld.sh

Pirmais scenārijs

Iepriekš minētajā skriptā ir tikai trīs rindas. Pirmais ir Hash-Bang Hack, kuru mēs esam apsprieduši iepriekš, otrais ir komentārs, bet trešais ir komanda, kas tiks izpildīta. Piezīme: komentāri nekad netiek izpildīti.

Apskatīsim citas bash skriptu funkcijas, kuras varat izmantot.

Echo komanda

Komanda Echo tiek izmantota, lai izdrukātu izvadi uz Linux komandrindas vai termināla. Ja esat izstrādātājs un iepriekš esat strādājis ar PHP, jums noteikti ir jāsaskaras arī ar šo komandu. Uzrakstīsim nelielu bash skriptu, lai parādītu, kā šī komanda darbojas.

#!/ bin / bash # Izdrukāsim pirmās rindas atbalss "Tas ir Fosslinux.lv - ar jaunu rindiņu "# Izdrukāsim otro paziņojumu bez jaunas rindas atbalss -n" Tas ir Fosslinux - nav jaunas rindas "

Saglabājiet skriptu, piešķiriet nepieciešamās atļaujas un izpildiet to.

Bash Echo

Lai saprastu kodu, pirmā atbalss komanda izdrukā paziņojumu un pāriet uz nākamo rindu. Otrajai atbalss komandai ir -n arguments, kas neļauj skriptam pāriet uz nākamo rindu. Izmantojot komandu Echo, varat izmantot daudzas citas opcijas, ieskaitot mainīgos, kā mēs redzēsim tālāk.

Mainīgie

Mainīgie ir kopīga un nepieciešama jebkuras programmēšanas valodas sastāvdaļa. Var deklarēt Bash mainīgos vairākos veidos. Piešķirot vērtību jebkuram mainīgajam, jums nav jāizmanto simboli. Tomēr, izsaucot mainīgā vērtību, jums būs jāizmanto $ zīme mainīgā sākumā.

Mainīgos var izmantot terminālā vai kā skriptus. Izpildiet zemāk esošās komandas savā terminālā.

myWebsite = "Fosslinux.com "echo $ myWebsite

Mainīgo izmantošana terminālā

Tagad izveidosim bash skriptu, kas no lietotāja ņem divas ievades un glabā tos mainīgajos $ x un $ y. Pēc tam skripts pārbaudīs, vai abas vērtības ir vienādas vai nē.

#!/ bin / bash echo "Ievadiet pirmo skaitli" lasiet atbalsi "Ievadiet otro skaitli" lasiet b, ja [[$ a -eq $ b]], tad atbalss "Skaitļi ir vienādi", citādi atbalss "Cipari nav vienādi" fi

Saglabājiet skriptu un palaidiet to. No zemāk redzamā attēla var redzēt, ka mēs ievadījām dažādas vērtības, un skripts varēja pārbaudīt, vai tās ir vienādas vai nē.

Bash mainīgie

Tagad apskatīsim kodu tuvāk. Pirmie divi atbalss paziņojumi liek lietotājam ievadīt ievadīto pirmo un otro numuru. The lasīt komanda gaidīs, līdz lietotājs ievadīs numuru un saglabās to norādītajā mainīgajā. Mūsu gadījumā tas tā ir a un b. Tad mums ir paziņojums if, kas pārbauda, ​​vai abas vērtības ir vienādas vai nē.

Nosacījuma paziņojums

Jebkurā programmēšanas valodā nosacītie paziņojumi kontrolē programmas plūsmu. Koda daļa tiks izpildīta tikai tad, kad būs izpildīts noteikts nosacījums. Daži no visizplatītākajiem nosacītajiem izteikumiem ietver “ja-tad-cits” un “gadījums.”Zemāk ir teikuma if-then-else pamata sintakse.

ja [[nosacījums]], tad  cits  fi

Apskatiet zemāk esošo skriptu, kurā tiek izmantots nosacījuma paziņojums “ja-tad-cits”.

#!/ bin / bash atbalss "Ievadiet savu vecumu" lasīšanas vecums, ja ((vecums> 18)), tad atbalss "Jūs varat doties uz ballīti", citādi atbalss "Jūs neesat tiesīgs iet uz ballīti" fi

Bash nosacītie paziņojumi

Apskatīsim iepriekš minēto skriptu. Mums ir atbalss paziņojums, kas lietotājiem liek ievadīt viņu vecuma numuru. The lasīt paziņojums saglabā vecumu, kas ievadīts mainīgajam “vecums.”Tad mums ir nosacījuma paziņojums“ ja-tad-vēl ”, kas pirms lietotāja norādīšanas pārbauda, ​​vai vecums ir lielāks par 18 gadiem.

Cilpas

Cilpas parasti izmanto, ja vēlaties vairākas reizes izpildīt koda fragmentu. Piemēram, ja es gribētu atbalsot apgalvojuma “Laipni lūdzam Fosslinux” 1000 rindas, man būtu nepieciešami 1000 atbalss paziņojumi. Tomēr ar cilpām viss, kas man jādara, ir norādīt, cik reižu es vēlos, lai paziņojums atbalsotos vai tiktu izdrukāts terminālā. Bash atbalsta trīs veidu cilpas; Par cilpu, kamēr cilpa un līdz ciklam. Apskatīsim katru no tiem.

A For Loop tiek izmantots, lai atkārtotu, izmantojot norādīto datu sarakstu vai masīvu. Zemāk ir Bash For Loop pamata sintakse;

vērtībai 1 2 3 4 5… N izpildiet instrukciju1 instrukciju2 instrukciju-N

vai,

par VALUE failā1 file2 file3 veiciet instrukciju1 par $ VALUE instrukciju2 instrukcija-N izdarīta

Apskatiet zemāk esošo skriptu. Tas atkārtojas noteiktās nedēļas dienās un izdrukā tos Termināla rindā pa rindai.

# Izlasiet nedēļas dienas nosaukumu katrā cikla atkārtojumā pirmdien otrdien, otrdien, trešdien, ceturtdien, piektdien, sestdien, svētdien, atbalsot "$ day" izdarīts

Saglabāsim skriptu kā ForLoop.sh un izpildiet to. Zemāk ir izvades ekrānuzņēmums.

Par cilpu

Tas ir tikai vienkāršs piemērs tam, ko jūs varat darīt ar For Loop. Lai veiktu noteiktu uzdevumu, to var arī apvienot ar nosacījumiem.

Kamēr cilpa izpilda noteiktu uzdevumu, kamēr konkrēts nosacījums paliek patiess. Katrā atkārtojumā cilpa vispirms pārbauda stāvokli, pirms izpilda instrukcijas. Kad nosacījums ir False, cilpa tiks pārtraukta. Bash pamata sintakse, kamēr cilpa ir šāda:

kamēr [CONDITION] dari [COMMANDS]

Piemēram, mums var būt skripts, kas izdrukās paziņojumu “Laipni lūdzam FOSSLINUX.COM ” 20 reizes, līdz mainīgais X ir iestatīts uz 20. Mēģināsim to praktiski īstenot. Apskatiet zemāk esošo skriptu.

#!/ bin / bash x = 1, kamēr [$ x -le 20] atbalsojas "Laipni lūdzam FOSSLINUX.COM "x = $ (($ x + 1)) izdarīts

Saglabāsim skriptu kā WhileLoop.sh un izpildiet to. Zemāk ir izvades ekrānuzņēmums.

Kamēr cilpa

Apskatīsim augstāk esošo skriptu While Loop. Vispirms mēs deklarējam mainīgo X, piešķirot tam vērtību 1. Pēc tam mēs izveidojam paziņojumu While, kas izdod paziņojumu “Laipni lūdzam FOSSLINUX.COM ”, kamēr X ir mazāks par 20. Visbeidzot, mēs pēc katras iterācijas palielinām X par vienu.

Cilpas Bash Līdz tiek izmantotas, lai izpildītu instrukciju vai komandu kopu, kamēr iestatītais nosacījums tiek novērtēts kā nepatiess. Tālāk ir redzama līdz cikla pamatsintakse.

līdz [CONDITION] veiciet [INSTARUCTIONS / COMMANDS]

Līdzīgi kamēr Loop, arī pirms Loop vispirms novērtē iestatīto nosacījumu, pirms tiek izpildītas instrukcijas vai komandas. Ja stāvoklis tiek novērtēts kā nepatiess, tiek izpildītas instrukcijas. Cilpa tiek pārtraukta, kad nosacījums tiek novērtēts kā patiess. Apskatiet zemāk redzamo piemēru.

#!/ bin / bash count = 0 līdz [$ count -gt 5] do echo Counter: $ count ((skaits ++)) izdarīts

Pēc iepriekš saglabātā skripta saglabāšanas un palaišanas mēs iegūstam zemāk redzamo izvadi:

Līdz Loop

Iepriekš minētie skripti vispirms izveido mainīgo skaitu un iestata to uz nulli (0). Tas ir nosacījums, kas kontrolē mūsu programmas plūsmu. Līdz Loop pārbauda, ​​vai skaitīšanas vērtība ir lielāka par 5. Ja tā nav, tā izdrukās nodotās instrukcijas. Tomēr, ja vērtība ir lielāka par 5, cilpa nekavējoties tiks pārtraukta. Visbeidzot, mēs palielinām skaitīšanas vērtību par 1 (skaits ++).

Bash funkcijas

Programmēšanā un skriptu veidošanā funkcijas tiek izmantotas, lai turētu atkārtoti lietojamu koda daļu, kas nepieciešama konkrēta uzdevuma veikšanai. Tādēļ, ja jums ir līdzīgas komandas, kuras vēlaties izpildīt dažādās skripta daļās, šīs komandas nav atkārtoti jāraksta. Ieslēdziet tos funkcijā un tā vietā izpildiet funkciju.
Zemāk ir Bash funkcijas pamata sintakse.

function_name ()    

vai,

funkcija function_name    

Izveidosim vienkāršu skriptu, kurā izmantotas funkcijas. Vispirms mēs izveidojam funkciju ar nosaukumu “myFunction”, kas izsauc paziņojumu “Sveiki, es esmu pirmā funkcija”, kad to izsauc. Otrā funkcija “myCities” ir nedaudz uzlabota, jo tai ir nepieciešami argumenti. Argumenti tiek doti pēc funkcijas nosaukuma izsaukšanas. Funkcijā tie ir pieejami kā $ 1.

#!/ bin / bash myFunction () echo "Sveiki, es esmu pirmā funkcija" echo "Sveiki, es esmu pirmā funkcija" echo echo "Šī ir otrā funkcija" funkcija myCities () echo Hello $ 1 myFunction myCities Vašingtona, D.C myCities Phoenix

Pēc skripta saglabāšanas un izpildes mēs iegūstam zemāk esošo izvadi.

Funkcijas

Bash izvēlnes

Rakstot skriptu, lai veiktu uzlabotu uzdevumu, jums var būt nepieciešams, lai lietotājs izvēlētos vienu opciju no vairākām terminālā parādītajām opcijām. Lai to panāktu, mēs izmantosim bash atlasiet komandu.

Tas izveido vienkāršu izvēlnes skriptu, kas mudinās lietotājus no saraksta izvēlēties savus iecienītākos Linux izplatījumus. Apskatiet zemāk esošo skriptu.

#!/ bin / bash #Izdrukāt ziņojumu lietotājam atbalss "Atlasiet savu iecienītāko Linux izplatīšanu" atlasiet distro Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali do #Izdrukājiet izvēlēto vērtību, ja [[$ distro == "Iziet"]], tad izejiet no vēl 0 atbalss "Atlasītais Linux izplatīšana ir $ distro"

Saglabāsim skriptu kā izvēlni.sh un izpildiet to. Mēs iegūstam izeju zemāk.

Bash izvēlnes

Iepriekš minētajā skriptā mums ir Septiņu Linux izplatīšanas saraksts, kuru lietotājs izvēlēsies vienu. Pēc atlases veikšanas tā tiek saglabāta mainīgajā distro un vēlāk iespiests, sasienot to ar auklu “Atlasītā Linux izplatīšana ir.” Bash select izvēlnes var būt diezgan noderīgas, īpaši, ja jums ir vairāki skripti, kas veic dažādus uzdevumus, un ir jāizvēlas viens, kuru viņi vēlas izpildīt.

Aritmētika

Katra programmēšanas valoda atbalsta aritmētisko darbību veikšanu, un bash skripti nav izņēmums. Tomēr tas, kā mēs veicam aritmētiskās darbības, ir nedaudz atšķirīgs. Zemāk ir viens no veidiem, kā jūs varat veikt aritmētiskās darbības bash. Mēs aplūkosim četrus aritmētisko darbību veidus - summa, dalīšana un reizināšana.

#!/ bin / bash # Aprēķināt summas rezultātu = $ ((70 + 15)) # Drukāt summas vērtību atbalss "summa = $ rezultāts" # Aprēķināt dalījuma rezultātu = $ ((100/25)) # Drukāt dalījuma vērtības atbalss "dalījumu = $ rezultāts "# Aprēķināt reizināšanas rezultātu = $ ((15 * 15)) atbalss" Reizināšana = $ rezultāts "

Saglabāsim iepriekš minēto skriptu kā aritmētisko.sh un izpildiet to. Mēs iegūstam izeju zemāk.

Aritmētika

Secinājums

Tas ir pilnīgs iesācēju ceļvedis, lai sāktu darbu ar Bash skriptiem. Tomēr Bash ir vairāk nekā tas, kas ir aprakstīts šajā apmācībā. Viena no vietām, kuru es ieteiktu uzlabot savas prasmes, ir GNU Bash Reference Manual. Ja rodas kādas problēmas vai komentējat šo ziņu, lūdzu, nekautrējieties nospiest zemāk esošos komentārus.

Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...
Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...
Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...