„Bash Scripting“ pamoka pradedantiesiems

Bash Scripting Tutorial



Numatytoji „Linux“ komandų kalba yra „Bash“ scenarijus. Turime kasdien vykdyti daugybę komandų „Linux“ daugeliu tikslų. Šios kasdienės užduotys gali būti automatizuotos naudojant „bash“ scenarijų. Bet kuris vartotojas gali lengvai ir greitai išmokti šią scenarijų kalbą. Jei esate naujokas bash programavimo srityje, ši pamoka skirta jums.

Turinys:

  1. Komentarai
  2. aido komanda
  3. Kintamieji
  4. Sąlyginis teiginys
  5. Kilpos
  6. Funkcijos
  7. Programų iškvietimas scenarijumi
  8. Meniu kūrimas
  9. Komandinės eilutės apdorojimas
  10. Aritmetika
  11. Styginių manipuliacija
  12. Grąžinti grąžinimo kodus iš scenarijaus ir sugauti kitą scenarijų
  13. Skaitymas ir rašymas į failus
  14. Vamzdžiai

Komentarai

Komentarų pridėjimas su kodu yra esminė bet kurios programavimo kalbos dalis. Vykdymo metu komentarai nėra analizuojami kartu su scenarijumi. Skaitytojas gali tinkamai suprasti bet kurį kodą, jei kodas yra gerai pakomentuotas. „Bash“ scenarijuje galite pridėti komentarą keliais būdais. Kaip galite pridėti vienos eilutės ir kelių eilučių komentarus „bash“ scenarijuje, parodyta šioje dalyje. Sukurkite „bash“ failą naudodami šį scenarijų, kad žinotumėte, kaip naudojamas „bash“ komentaras. Čia simbolis „#“ naudojamas vienos eilutės komentarui pridėti, o viena citata („) su„: “naudojama kelių eilučių komentarams pridėti.







bash_comment.sh



#!/bin/bash
#Paimkite skaičių kaip įvestį
išmetė „Įveskite skaičių“
skaitytiį
:'
Patikrinkite, ar įvesties numeris yra
mažesnis nei 10 arba didesnis nei 10 arba lygus 10
'

jei [[ $ a -lt 10 ]]
tada
išmetė „Skaičius yra mažesnis nei 10“
elifas [[ $ a -gt 10 ]]
tada
išmetė „Skaičius yra didesnis nei 10“
Kitas
išmetė „Skaičius lygus 10“
būti

Išėjimas:



Paleiskite scenarijų.





$muštibash_comment.sh

Čia scenarijus vykdomas tris kartus su įvesties reikšmėmis 3, 10 ir 90. Bus rodomas toks rezultatas.



Jei norite daugiau sužinoti apie bash komentavimą, galite patikrinti ši pamoka .

Eiti į viršų

aido komanda

„echo“ komanda naudojama „bash“, norint spausdinti išvestį terminale. Naudojant „echo“ komandą „bash“ galima naudoti įvairias parinktis, kad išvestis būtų spausdinama įvairiais būdais. Sukurkite „bash“ failą naudodami šį scenarijų, kad žinotumėte du paprastus „echo“ komandos naudojimo būdus. Čia pirmoji komanda „echo“ atspausdins paprastus teksto duomenis su nauja eilute, o antroji „echo“ komanda atspausdins paprastą tekstą be naujos eilutės.

echo_test.sh

#!/bin/bash
#Atspausdinkite pirmąjį tekstą
išmetė „Spausdinti tekstą nauja eilute“
#Atspausdinkite antrąjį tekstą
išmetė -n „Spausdinti tekstą be naujos eilutės“

Išėjimas:

Paleiskite scenarijų.

$muštiecho_test.sh

Vykdžius aukščiau nurodytą komandą, pasirodys ši išvestis.

„Bash“ yra daug kitų „echo“ komandos naudojimo būdų. Norėdami sužinoti daugiau apie komandą „echo“, galite patikrinti šią mokymo programą.

Eiti į viršų

Kintamieji

Kintamųjų deklaracija yra būtina bet kurios programavimo kalbos dalis. Bash kintamieji gali būti deklaruojami įvairiais būdais. Kai kintamajam priskiriama reikšmė, tada kintamojo pradžioje nenaudojamas simbolis. „$“ Simbolis naudojamas su kintamojo pavadinimu skaitant kintamojo vertę. Kintamasis gali būti naudojamas iš terminalo arba bet kuriame „bash“ scenarijuje.

Šios komandos paskelbs eilutės kintamąjį pavadinimu mystr su tam tikra reikšme ir kitą kartą terminale išspausdinkite kintamojo reikšmę.

$mystr=„Man patinka„ bash “programavimas“
$išmetė $ mystr

Išėjimas:

Sukurkite „bash“ failą naudodami šį scenarijų. Čia deklaruojami du kintamieji. Šitie yra $ a ir $ b . Jei įvesties reikšmė, kuri yra saugoma $ a yra lygus $ b tada žinutė, Skaičiai lygūs bus atspausdintas kitaip Skaičiai nėra lygūs bus atspausdintas.

var.sh

#!/bin/bash
išmetė „Įveskite skaičių“
skaitytiį
b=100
jei [[ $ a -ekv $ b ]]
tada
išmetė „Skaičiai yra lygūs“
Kitas
išmetė „Skaičiai nėra lygūs“
būti

Išėjimas:

Paleiskite scenarijų.

$muštivar.sh

Aukščiau pateikta komanda vykdoma du kartus, kai vertė yra 56 ir 100. Bus rodomas toks rezultatas.

Jei norite daugiau sužinoti apie „bash“ kintamuosius, galite patikrinti ši pamoka .

Eiti į viršų

Sąlyginis teiginys

Kaip ir kita programavimo kalba, „bash“ galite naudoti sąlyginį teiginį. ' Jei-tada-kitaip “Ir„ atvejis “Teiginiai dažniausiai naudojami sąlygų pareiškimams įgyvendinti bet kuria programavimo kalba. Sąlyginio teiginio naudojimas naudojant 'Jei' teiginys parodytas šiame vadovėlio skyriuje. Sukurkite „bash“ failą naudodami šį scenarijų, kuriame naudojamas sąlyginis teiginys. Čia dvi reikšmės bus paimtos iš vartotojo kaip įvesties ir saugomos kintamuosiuose, $ kodas , ir $ amžiaus . „If“ teiginys naudojamas norint patikrinti $ amžiaus yra didesnis arba lygus 18 ir vertė $ kodas yra 1100 . Jei abi sąlygos yra teisingos, pranešimas Jūs turite teisę pamatyti filmą bus atspausdintas kitaip Jūs neturite teisės žiūrėti filmo bus atspausdintas.

cond.sh

#!/bin/bash

išmetė 'Įveskite savo kodą'
skaitytikodą
išmetė „Įveskite savo amžių“
skaitytiamžiaus

jei [[ $ amžiaus -duoti 18 && $ kodas -ekv „1100“ ]]
tada
išmetė „Jūs turite teisę pamatyti filmą“
Kitas
išmetė „Jūs neturite teisės žiūrėti filmo“
būti

Išėjimas:

Paleiskite scenarijų.

$mušticond.sh

Toliau pateikiama išvestis pasirodys paėmus skirtingas įvesties reikšmes. 1100 pateikiamas kaip kodas, o 5 - kaip amžius pirmą kartą vykdant ir jei sąlyga grąžina klaidingą šių reikšmių reikšmę. 1100 nurodomas kaip kodas, o 45 - kaip antrojo įvykdymo amžius, kuris grąžina sąlygą „if if“.

Jei norite daugiau sužinoti apie „bash“ sąlyginį teiginį, galite patikrinti šią pamoką.

Eiti į viršų

Kilpos

Kai kai kurias scenarijaus dalis reikia vykdyti kelis kartus, tai užduočiai atlikti naudojama kilpa. „Bash“, kaip ir kitos kalbos, palaiko trijų tipų kilpų deklaravimą. Jie skirti, kol ir kol bus kilpos. Remiantis programavimo reikalavimais, scenarijuje naudojama tam tikra kilpa. Šių trijų tipų kilpų naudojimas parodytas šiame skyriuje, naudojant paprastus pavyzdžius.

Naudojimas kilpoms

Sukurkite „bash“ failą naudodami šį scenarijų, kur „ už ' kilpa naudojama iteracijai. „už“ kilpa daugiausia naudojama duomenų sąrašui arba masyvui kartoti. Čia naudojamas savaitės dienų pavadinimų sąrašas ir kiekvienas savaitės dienos pavadinimas kartojamas naudojant ciklą. `jei` teiginys naudojamas tam tikram pranešimui spausdinti pagal savaitės dienos pavadinimą.

už.sh

#Skaitykite savaitės dienos pavadinimą kiekvienoje ciklo iteracijoje
dėldienąįPirmadienis Antradienis Trečiadienis Ketvirtadienis Penktadienis Šeštadienis Sekmadienis
daryti

#Patikrinkite, ar savaitės dienos pavadinimas yra pirmadienis arba ketvirtadienis
jei [[ $ diena=='Pirmadienis' || $ diena=='Ketvirtadienis' ]]
tada
išmetė 'Susitikimas$ diena9:30 val.

#Patikrinkite, ar savaitės dienos pavadinimas yra antradienis, trečiadienis arba penktadienis
elifas [[ $ diena=='Antradienis' || $ diena=='Trečiadienis' || $ diena=='Penktadienis' ]]
tada
išmetė 'Treniruotės$ diena11:00 val.
Kitas

#Spausdinkite „Atostogas“ kitoms dienoms
išmetė '$ dienayra atostogos '
būti
padaryta

Išėjimas:

Paleiskite scenarijų.

$muštiuž.sh

Paleidus scenarijų pasirodys ši išvestis.

Jei norite sužinoti daugiau apie „bash for loop“ naudojimą, galite patikrinti šią pamoką.

Naudojimas ciklo metu

Sukurkite „bash“ failą naudodami šį scenarijų, kur „ kol ` kilpa naudojama iteracijai. Šis scenarijus atspausdins tuos skaičius nuo 1 iki 20, kurie yra lygūs ir dalijami iš 5. Čia, $ skaitiklis kintamasis naudojamas ciklo iteracijai kontroliuoti, o šio kintamojo vertė kiekvienoje iteracijoje padidinama 1. Kada `jei` sąlyga grįš į tikrąją, tada ji atspausdins reikšmę $ skaitiklis .

#!/bin/bash

#Atspausdinkite pranešimą
išmetė „Atspausdinkite skaičius, kurie yra lygūs ir dalijami iš 5“

#Inicijuokite skaitiklį
skaitiklis=1

#Pakartokite ciklą, kol $ skaitiklio vertė bus mažesnė arba lygi 20
tuo tarpu [ $ skaitiklis -jie dvidešimt ]
daryti

#Patikrinkite, ar $ skaitiklis dalijasi iš 2 ir 5
jei [[ $ skaitiklis%2-ekv 0 && $ skaitiklis%5-ekv 0 ]]
tada
#Spausdinti $ skaitiklį be naujos eilutės
išmetė '$ skaitiklis'
būti

#Padidėjimas $ skaitiklis 1
((skaitiklis ++))
padaryta
išmetė 'Padaryta'

Išėjimas:

$muštio.š

1-20 yra tik skaičiai, kurie yra lygūs ir dalijami iš 5. Po to, kai bus paleistas scenarijus, pasirodys toks rezultatas.

Jei norite sužinoti daugiau apie bash kol ' kilpa, tada galite patikrinti ši pamoka .

Naudojant iki kilpos

Sukurkite „bash“ failą naudodami šį scenarijų, kur „ iki “ kilpa naudojama iteracijai. Šis scenarijus išspausdins visus nelyginius skaičius nuo 0 iki 20. $ n kintamasis šiame scenarijuje naudojamas ciklui kartoti.

kol.sh

#!/bin/bash

#Inicijuoti kintamąjį, n
n=dvidešimt

#Pakartokite ciklą, kol $ n reikšmė bus didesnė nei 0
iki [ $ n -lt 0 ]
daryti

#Patikrinkite, ar n reikšmė nelyginė
jei [[ $ n%2-gt 0 ]]
tada
išmetė $ n
būti

#Padidinkite n reikšmę 1
((n=$ n-1))
padaryta

Išėjimas:

Paleiskite scenarijų.

$muštikol.sh

Scenarijus išspausdins visus lyginius skaičius nuo 20 iki 1. Paleidus scenarijų pasirodys toks rezultatas.

Eiti į viršų

Funkcijos

Kai kodo bloką reikia vykdyti kelis kartus scenarijuje, funkcija naudojama užduočiai atlikti. Funkciją turėsite vadinti tik tada, kai funkcijoje apibrėžtas scenarijus turi būti vykdomas daug kartų, o ne pridėti tą patį scenarijų kelis kartus. Pirmasis ir pabaigos skliaustas naudojamas su funkcijos pavadinimu, norint deklaruoti funkciją bash scenarijuje. Funkcija gali būti vadinama tik funkcijos pavadinimu bash. „Bash“ nepalaiko funkcijos argumento, kaip kita standartinė programavimo kalba. Tačiau reikšmė gali būti perduota „bash“ funkcijai kitaip, kaip parodyta šiame skyriuje. Vertę galima grąžinti iš funkcijos su grąžinimo pareiškimu arba nenaudojant grąžinimo pareiškimo.

Sukurkite „bash“ failą naudodami šį scenarijų, kad žinotumėte, kaip funkcijas galima deklaruoti ir iškviesti naudojant „bash“ scenarijų. Scenarijuje deklaruojamos trys funkcijos. Paskelbta pirmoji funkcija, skirta spausdinti paprastą pranešimą, Bash programavimas pradedantiesiems . Paskelbta, kad antroji funkcija kintamajam priskiria eilutės reikšmę, $ return_str kuris atspausdins, Išmokite programuoti „bash“ naudodami „LinuxHint“ paskambinus funkcijai. Paskelbta, kad trečioji funkcija skaito argumento vertę kaip apskritimo spindulį, kuris bus pateiktas iškviečiant funkciją. Čia, vietinis naudojama argumento vertei skaityti. Ši funkcija apskaičiuos apskritimo plotą pagal spindulio reikšmę, naudodami formulę, πr2 ir atsispausdinkite apskaičiuotą ploto vertę.

func.sh

#!/bin/bash

#Deklaruokite paprastą funkciją
funkcijaprint_message()
{
išmetė „Bash“ programavimas pradedantiesiems
}

#Deklaruokite funkciją, kad grąžintumėte eilutės reikšmę
funkcijaret_strdata()
{
#Inicijuokite kintamąjį naudodami eilutės reikšmę
return_str=„Išmok bash programavimo naudodami„ LinuxHint “
}

#Deklaruokite funkciją, skirtą nuskaityti argumento vertę
funkcijaapskaičiuoti_plotas()

#Skaitykite perduotą argumento vertę
vietinis spinduliu=1 USD
srityje= $(išmetė $ spinduliu*$ spinduliu*3.14

#Kvieskite funkciją, kad išspausdintumėte paprastą pranešimą
print_message

#Skambinkite funkcijai, kuri kintamajam priskirs eilutės reikšmę
ret_strdata

#Spausdinkite kintamojo vertę
išmetė $ return_str

#Skaitykite spindulio vertę
išmetė „Įveskite spindulio vertę“
skaitytidirbti

#Skambinkite funkcijai su spindulio reikšme
apskaičiuoti_plotas$ rad

Išėjimas:

Paleiskite scenarijų.

$muštifunc.sh

Paleidus scenarijų pasirodys ši išvestis. Pirmosios dvi eilutės bus atspausdintos iškviečiant funkcijas, print_message () ir ret_strdata () . Paskutinė eilutė bus išspausdinta iškviečiant funkciją, apskaičiuoti_plotas () su paimta įvesties spindulio reikšme.

Jei norite sužinoti apie eilutės grąžinimą iš „bash“ funkcijos, galite tai padaryti ši pamoka .

Eiti į viršų

Programų iškvietimas scenarijumi

Galite naudoti daugelio tipų komandas, kad iškviestumėte kitas programas bet kuriame „bash“ scenarijuje, pvz šaltinis, bash, eval, vykd ir tt Tarkime, trys bash failai, pridėti.sh , atimti.sh, daugintis.sh ir dalintis.sh sukurtas sudėti, atimti, dauginti ir padalyti. Čia, atimti.sh ir padalijimas.sh skaityti komandinės eilutės argumentus. Visų šių keturių failų scenarijus pateiktas žemiau.

pridėti.sh

#!/bin/bash
į=60
b=40
((rezultatas=$ a+$ b))
išmetė 'Pridėjimas$ a+$ b=$ rezultatas'

atimti.sh

#!/bin/bash
į=1 USD
b=2 USD
((rezultatas=$ a-$ b))
išmetė 'Atėmimas$ a-$ b=$ rezultatas'

daugintis.sh

#!/bin/bash
((rezultatas=1 USD*2 USD))
išmetė „1 ir 2 USD dauginimas yra$ rezultatas'

padalinti.sh

#!/bin/bash
į=1 USD
b=2
((rezultatas=$ a/$ b))
išmetė „Padalijimas$ apagal$ byra$ rezultatas'

Sukurkite bash failą pavadinimu, callpro.sh naudodami šį scenarijų, kad iškviestumėte minėtus „bash“ failus naudodami „source“, „bash“, „eval“ ir „exec“ komandas. Prieš paleisdami šį scenarijų, turite nustatyti aukščiau nurodytų keturių failų vykdymo leidimą. Skambinti naudojama komanda „šaltinis“ pridėti.sh failą. „bash“ komanda naudojama failui subtract.sh vykdyti. „eval“ komanda naudojama vykdyti multiply.sh failą. Dvi įvesties vertės siunčiamos kaip komandinės eilutės argumentai komandai „eval“. Paskutinė komanda yra „exec“ komanda, kuri veikia tik su absoliučiu keliu. Tam scenarijuje nurodomas visas failo divide.sh kelio pavadinimas.

callpro.sh

#!/bin/bash
scenarijus1='add.sh'
scenarijus2='atimti.sh'
scenarijus3='multiply.sh'
scenarijus4='/home/fahmida/code/divide.sh'

šaltinis '$ script1'

mušti $ script2 penkiasdešimt dvidešimt

išmetė „Įveskite a reikšmę“
skaitytiį
išmetė „Įveskite b reikšmę“
skaitytib
eval mušti $ script3 $ a $ b
vykd $ script4 30

Išėjimas:

Paleiskite scenarijų.

$mušticallpro.sh

Paleidus scenarijų pasirodys ši išvestis.

Eiti į viršų

Meniu kūrimas

„Bash“ yra naudinga komanda sukurti paprastą meniu, vadinamą 'pasirinkti' komandą. Naudojant šią komandą galima sukurti įvairių tipų meniu. Pagal šią komandą meniu sukuriamas tam tikras duomenų sąrašas. Norėdami pamatyti naudojimą, sukurkite „bash“ failą su šiuo kodu 'pasirinkti' komanda kuriant meniu. Šiame pavyzdyje penkių elementų sąrašas bus atspausdintas kaip meniu ir raginamas vartotojas pasirinkti bet kurią kalbą iš sąrašo. Pasirinkta vertė bus išsaugota kintamajame, $ kalba kuris vėliau spausdinamas sujungiant su kita eilute. Scenarijus nuolat prašys pasirinkti kalbą, kol vartotojas paspaus 6 nutraukti iš scenarijaus.

meniu.sh

#!/bin/bash

#Spausdinti pranešimą vartotojui
išmetė „Pasirinkite mėgstamą kalbą“

# Apibrėžkite meniu elemento sąrašą
pasirinktikalbaįC# „Java PHP Python Bash“ išėjimas
daryti
#Spausdinkite pasirinktą vertę
jei [[ $ kalba==„Išeiti“ ]]
tada
išeiti 0
Kitas
išmetė 'Pasirinkta kalba yra$ kalba'
būti
padaryta

Išėjimas:

Paleiskite scenarijų.

$muštimeniu.sh

Remiantis toliau pateiktu rezultatu, vartotojas pirmą kartą paspaudė 3, atspausdindamas PHP, ir antrą kartą paspaudė 6, kuris baigėsi nuo scenarijaus.

Jei norite daugiau sužinoti apie „bash“ meniu kūrimą naudodami „select“, galite apsilankyti šioje pamokoje.

Eiti į viršų

Komandinės eilutės apdorojimas

Kartais vykdydami scenarijų iš komandinės eilutės turime pateikti įvesties reikšmes. Šią užduotį galima atlikti dviem būdais „bash“. Vienas iš būdų yra naudoti argumentų kintamuosius, o kitas - naudojant funkciją getopts. Šiame skyriuje parodytas komandinės eilutės įvesties duomenų skaitymas iš terminalo naudojant argumentų kintamąjį.

Sukurkite „bash“ failą naudodami šį scenarijų, kad pamatytumėte, kaip naudojama komandinės eilutės argumento vertė. Šis scenarijus perskaitys tris komandinės eilutės argumentus, kurie bus saugomi kintamuosiuose: $ operand1, $ operand2 ir $ operatorius. Kad scenarijus būtų tinkamai įvykdytas, pirmojo ir trečiojo argumentų reikšmės turi būti skaičius, o antroji-bet kurios iš keturių aritmetinių operatorių („+“, „-“, „/“, „x“) vertė. jei pareiškimas patikrins operatoriaus $ reikšmę ir atliks operaciją pagal operatorių ir išspausdins vertę.

cl1.sh

#!/bin/bash

#Spausdinkite argumentų kintamuosius
išmetė „Argumento vertės yra: 1 USD 2 USD 3 USD“

# Saugokite argumentų reikšmes
operandas1=1 USD
operandas2=3 USD
operatorius=2 USD

#Norėdami atlikti aritmetinę operaciją, patikrinkite antrosios komandos argumento reikšmę
jei [[ $ operatorius==„+“ ]]
tada
((rezultatas=$ operandas1+$ operandas2))
elifas [[ $ operatorius=='-' ]]
tada
((rezultatas=$ operandas1-$ operandas2))
elifas [[ $ operatorius==„x“ ]]
tada
((rezultatas=$ operandas1*$ operandas2))
elifas [[ $ operatorius=='/' ]]
tada

((rezultatas=$ operandas1/$ operandas2))
būti

# atsispausdinkite rezultatą
išmetė -Ir 'Rezultatas =$ rezultatas'

Išėjimas:

Paleiskite scenarijų.

$mušticl1.sh

Scenarijus vykdomas keturis kartus keturių tipų aritmetiniams operatoriams. Toliau pateikiama argumentų reikšmių išvestis, 6 + 3, 6 - 3, 6 x 3 ir 6/3 .

Argumento reikšmės gali būti perduodamos naudojant vardo ir vertės porą bash. Sukurkite „bash“ failą naudodami šį scenarijų, kad parodytumėte, kaip skaityti argumentų reikšmes su pavadinimu. Scenarijus skaitys du argumentų kintamuosius. Argumento reikšmės su pavadinimu spausdinamos pirmame scenarijaus teiginyje. Tada ciklas for skirtas kartoti masyvą, kuriame yra komandinės eilutės argumentų vertės. Kiekvienas masyvo elementas yra padalintas į raktų ir verčių porą naudojant komandą „cut“. Toliau atvejo sakinys naudojamas tam tikram pranešimui spausdinti pagal pagrindinę reikšmę.

cl2.sh

. #! /esu/mušti

#Spausdinkite argumentų kintamuosius
išmetė „Argumento vertės yra: $ 1 $ 2“

#Skaitykite kiekvieną argumentą atskirai, naudodami ciklą
dėlpiktasį '[apsaugotas el. paštas]'
daryti

#Atskirkite argumento pavadinimą ir vertę
Raktas= $(išmetė $ arg | supjaustyti -f1 -d=)
vertės= $(išmetė $ arg | supjaustyti -f2 -d=)

#Spausdinti pranešimą pagal argumento pavadinimą
atvejis $ raktas į
vardas) išmetė 'Mokinio vardas =$ vertės';;
ženklas) išmetė „Gautas ženklas =$ vertės' ;;
*)
esac
padaryta

Išėjimas:

Paleiskite scenarijų naudodami šiuos komandinės eilutės argumentus.

$mušticl2.shvardas= Abiras Hossainasženklas=90

Pirmiau pateiktose komandose pateikiami du komandinės eilutės argumentai. Šitie yra vardas = Abir Hossain ir ženklas = 90 . vardas ir ženklų yra atskirtos scenarijumi, o suformatavus išvestį atspausdinamos dvi reikšmės.

Komandinės eilutės argumentų apdorojimas naudojant getoptai funkcija nėra aptariama šioje pamokoje. Jei norite sužinoti apie komandų eilutės apdorojimą naudodami getoptai funkcija, tada galite apsilankyti ši pamoka .

Eiti į viršų

Aritmetika

Aritmetinės operacijos atlikimas yra įprastas bet kurios programavimo kalbos reikalavimas. „Bash“ atlieka aritmetinę operaciją kitaip nei kita standartinė programavimo kalba. Yra keletas būdų, kaip atlikti aritmetines operacijas bash. Šiame skyriuje parodytas vienas iš paprastų aritmetinės operacijos atlikimo būdų. Sukurkite „bash“ failą naudodami šį scenarijų. Šiame scenarijuje parodytos keturios aritmetinių operacijų rūšys. Paprastos sumavimo ir padalijimo operacijos rodomos naudojant dvigubus pirmuosius skliaustus scenarijaus pradžioje. Toliau rodoma išankstinio padidinimo operacija. Galiausiai, būdas naudoti spartųjį operatorių parodytas paskutinėje scenarijaus dalyje.

arith.sh

#!/bin/bash
# Apskaičiuokite sumą
rezultatas= $((penkiasdešimt+25))
# Atspausdinkite sumos vertę
išmetė 'suma =$ rezultatas'

# Apskaičiuokite padalijimą
rezultatas= $((penkiasdešimt/25))
# Spausdinimo padalijimo vertė
išmetė „padalijimas =$ rezultatas'

# Priskirkite reikšmę N
N=10
# Atliekamas padidinimas iš anksto
((--N))
# Atspausdinkite N reikšmę
išmetė „Vertė po sumažėjimo =$ N'

# Naudojant spartųjį operatorių
((N +=10 ))
# Atspausdinkite N reikšmę
išmetė „Vertė pridėjus 10 =$ N'

Išėjimas:

Paleiskite scenarijų.

$muštiarith.sh

Paleidus scenarijų pasirodys ši išvestis.

Visos aritmetinės operacijos atliekamos naudojant dvigubus skliaustus šiame aukščiau esančiame scenarijuje. Bet jūs galite naudoti ' leisti “,„ išraiška “Ir„ bc „Komanda atlikti aritmetinę operaciją„ bash “. Jei norite sužinoti daugiau apie šias komandas, skirtas atlikti „bash“ aritmetines operacijas, galite apsilankyti šioje pamokoje.

Eiti į viršų

Manipuliacija stygomis

Daugelio tipų užduotis galima atlikti naudojant eilutės duomenis „bash“. Kai kurie sujungia eilutę, lygina eilutę, skaido eilutę, keičia eilutės raidę ir tt Nėra jokių integruotų eilutės funkcijų, kaip kitos standartinės bash kalbos, kad atliktų eilutės operacijas. Kai kurios įprastos manipuliacijos eilutėmis aptariamos šiame vadovėlio skyriuje.

Sujungimo eilutė

Dviejų ar daugiau eilučių sujungimas vadinamas eilučių sujungimu. Styga sujungiama bash, dedant vienas po kito. Sukurkite „bash“ failą naudodami šį scenarijų, kad parodytumėte, kaip naudojamos eilutės. Du eilutės kintamieji inicijuojami ir spausdinami sujungus kintamuosius. Čia, turinys $ string1 ir $ string2 bus sujungtos ir atspausdintos.

sujungti.sh

#!/bin/bash

#Inicijuoti pirmąjį eilutės kintamąjį
eilutė1='Man patinka '
#Inicijuoti antrąjį eilutės kintamąjį
eilutė2=„Bash“ programavimas
#Spausdinkite sujungę abi eilutes
išmetė '$ string1$ string2'

Išėjimas:

Paleiskite scenarijų.

$muštisujungti.sh

Paleidus scenarijų pasirodys ši išvestis.

Iš šios pamokos galite sužinoti daugiau apie eilių sujungimą.

Eiti į viršų

Stygos palyginimas

„Bash“ naudoja skirtingų tipų operatorius, kad palygintų eilutės duomenis. Sukurkite „bash“ failą naudodami šį scenarijų, kad parodytumėte, kaip palyginti du eilutės duomenis. Eilutės vertė laikoma scenarijaus įvestimi, kuri lyginama su kita eilute. Jei vertė sutampa, tada pranešimas, Tau patinka Python bus atspausdintas kitaip Tau patinka PERL bus atspausdintas.

palyginti.sh

#!/bin/bash
išmetėĮveskite bet kurią eilutės reikšmę
skaitytitekstas

#Patikrinkite, ar įvesties duomenys atitinka „Python“
jei [ $ tekstas==„Python“ ];tada
išmetė 'Tau patinka Python.'
Kitas
išmetė 'Tau patinka PERL'
būti

Išėjimas:

Paleiskite scenarijų.

$muštipalyginti.sh

Toliau pateikta išvestis pasirodys paleidus scenarijų, kuriame įvesties vertė yra „PERL“.

Daugiau apie stygų palyginimą galite sužinoti iš ši pamoka .

Skaidymo eilutė

„Bash“ neturi jokios integruotos padalijimo funkcijos eilutės duomenims padalyti. Eilutės duomenis galima padalyti keliais būdais „bash“, atsižvelgiant į skirtingų tipų skirtukus. Sukurkite „bash“ failą naudodami šį scenarijų, kad parodytumėte, kaip eilutės duomenis galima suskirstyti į „bash“. Eilutės vertė laikoma įvestimi. Šis scenarijus padalins reikšmę $ tekstas remiantis erdve. Čia, IFS kintamasis naudojamas atskirti. `skaityti` komanda čia naudojama norint padalyti teksto vertę ir išsaugoti reikšmes į masyvą. dėl kilpa naudojama masyvui kartoti ir kiekvieno elemento vertei atspausdinti.

suskaldyti.sh

#!/bin/bash
#Įveskite eilutės reikšmę
išmetėĮveskite eilutės reikšmę
skaitytitekstas
# Nustatykite ribotuvą
IFS=''
#Skaidykite $ teksto reikšmę į masyvą, pagrįstą tarpo ribotuvu
skaityti arr<<< '$ tekstas'
# Spausdinkite kiekvieną masyvo vertę
dėlvertėsį '$ {arr [@]}';
daryti
printf '$ vertės n'
padaryta

Išėjimas:

Paleiskite scenarijų.

$muštisuskaldyti.sh

Po išvesties pasirodys ši išvestis, Išmokite programuoti „Bash“ . Ši įvesties vertė yra trijų žodžių tekstas. Taigi, eilutė yra padalinta į tris dalis.

Daugiau apie stygų palyginimą galite sužinoti iš ši pamoka .

Keičiama eilutės raidė

Dauguma scenarijų kalbų turi integruotas funkcijas, kad pakeistų eilutės duomenų didžiosios ir mažosios raidės. Tačiau eilutės duomenų atvejį galima pakeisti naudojant „bash“ „tr“ komandą arba naudodami „: Viršutinis“ ir „: Žemesnis“ raktinius žodžius. Sukurkite „bash“ failą naudodami šį scenarijų, kad žinotumėte, kaip pakeisti „bash“ didžiosios ir mažosios raidės. Čia pirmieji eilutės duomenys konvertuojami į didžiąsias raides naudojant '^^' simbolį, o antroji eilutė konvertuojama į mažąsias raides naudojant „tr“ komandą. „tr“ komanda ieškos visų didžiųjų raidžių eilutėje ir konvertuos simbolius į mažąsias.

atvejis.sh

#!/bin/bash

#Inicijuokite pirmuosius eilutės duomenis
tekstas1='[apsaugotas el. paštas]'

#Išspausdinkite $ text1 reikšmę konvertuodami visus simbolius į didžiąsias raides
išmetė $ {email ^^}

#Inicijuokite antrosios eilutės duomenis
2 tekstas= „Basų programavimo pagrindai“

#Išspausdinkite $ text2 reikšmę konvertuodami visas didžiąsias raides į mažąsias
išmetė $ text2 | NS [: viršutinė:] [: žemesnis:]

Išėjimas:

Paleiskite scenarijų.

$muštiatvejis.sh

Paleidus scenarijų pasirodys ši išvestis.

Daugiau apie stygų palyginimą galite sužinoti iš ši pamoka .

Eiti į viršų

Eilutės duomenų skaitymas per kilpą

Eilutės duomenys veikia kaip bet kurios programavimo kalbos simbolių masyvas. Kaip ' dėl Ciklas gali būti naudojamas skaityti eilutės duomenis bash, parodytas šiame skyriuje. Sukurkite bazinį failą naudodami šį scenarijų, kad perskaitytumėte kiekvieną eilutės vertės dalį naudodami ciklą.

readstr.sh

#!/bin/bas
# Perskaitykite kiekvieną teksto žodį naudodami ciklą
dėlvertėsįBash programavimasdėlpradedantiesiems
daryti
išmetė $ vertės
padaryta

Išėjimas:

Paleiskite scenarijų.

$muštireadstr.sh

Paleidus scenarijų pasirodys ši išvestis.

Daugiau apie eilutės duomenų kartojimą galite sužinoti naudodami kilpą iš ši pamoka .

Eiti į viršų

Grąžinti grąžinimo kodus iš scenarijaus ir sugauti kitą scenarijų

Vienas „bash“ scenarijus gali sugauti grąžinimo kodus iš kito scenarijaus, paskambinęs scenarijui ir naudodamas '$?' perskaityti grąžinimo vertę. Tarkime, bash failas pavadinimu pirma.sh po vykdymo grąžina kodą. Sukurkite kitą bash failą pavadinimu antra.sh ir pridėkite šį scenarijų, kad gautumėte grąžinimo vertę ir atliktumėte kitas užduotis. Abiejų failų kodas pateiktas žemiau. pirma.sh failas bus iškviestas iš antra.sh failą scenarijaus pradžioje. pirma.sh grąžins išėjimo kodą pagal įvesties vertę. second.sh sulauks kodo '$?' ir palyginkite su 1. Jei abi vertės yra lygios, ji bus išspausdinta, Įvesties skaičius yra didesnis nei 100 , kitaip jis bus atspausdintas, Įvesties skaičius yra mažesnis arba lygus 100 .

pirma.sh

#!/bin/bash

išmetė „Įveskite skaitinę vertę“
skaitytin

# Patikrinkite, ar įvesties vertė yra mažesnė arba lygi 100, ar ne
jei [[ $ n -jie 100 ]]
tada
išeiti 0
Kitas
išeiti 1
būti

antra.sh

#! /bin/bash

#Vykdykite failą, first.sh
mušti 'first.sh'

#Patikrinkite, ar grąžinimo kodas lygus 1, ar ne
jei [ $? -ekv 1 ]
tada
išmetė „Įvesties skaičius yra didesnis nei 100“
Kitas
išmetė „Įvesties skaičius yra mažesnis arba lygus 100“
būti

Išėjimas:

Paleiskite scenarijų.

$muštiantra.sh

Toliau pateikiamas rezultatas pasirodys, kai scenarijus bus vykdomas 55 ir 110 du kartus.

Eiti į viršų

Skaitymas ir rašymas į failus

Failų skaitymas ir rašymas yra dažni „bash“ programavimo reikalavimai. „Bash“ neturi jokios integruotos funkcijos, kaip kita kalba failui skaityti ar rašyti. Yra keli būdai skaityti failą „bash“. Dažniausias būdas skaityti ar rašyti failą naudojant „bash“ yra `katė` komandą. Tačiau ši komanda naudojama skaityti visą failo turinį vienu metu. Taip pat galite skaityti bet kurį failą eilutėmis, naudodami bet kurią kilpą ir `skaityti` komandą. Naudodami peradresavimo operatorių, '>' , galite įrašyti duomenis į bet kurį „bash“ failą. Jei norite pridėti duomenų į bet kurį failą, turite naudoti '>>' operatorius. Failo skaitymo ir rašymo operacijos parodytos kitoje šio skyriaus dalyje.

Failo skaitymas bash

Sukurkite „bash“ failą naudodami šį scenarijų, kad perskaitytumėte esamą failą pavadinimu „ hardware.txt “. Šio failo turinys pateiktas žemiau. Scenarijuje perskaitomas visas failo turinys `katė` pirma ir kita komanda, o ciklas naudojamas failui skaityti eilutėmis.

hardware.txt

Monitorius
Klaviatūra
Pelė
Skaitytuvas
Spausdintuvas

readfile.sh

#!/bin/bash

išmetė „Failo skaitymas naudojant katės komandą“

# Perskaitykite failo turinį naudodami komandą „cat“
turinys=``katėhardware.txt``
išmetė $ turinys

išmetė „Failo skaitymas eilute po eilutės naudojant kilpą“

# Priskirkite failo pavadinimą
failo pavadinimas=„hardware.txt“

# Kiekviena failo eilutė bus perskaityta kiekviena ciklo iteracija
tuo tarpu skaitytilinija;
daryti
# atspausdinkite eilutę
išmetė $ eilutė
padaryta<$ failo pavadinimas

Išėjimas:

Vykdykite šias komandas.

$katėhardware.txt
$muštireadfile.sh

Čia pirmoji komanda atspausdins failo turinį, hardware.txt nepaleidus jokio „bash“ scenarijaus, o antroji komanda paleis scenarijų readfile.sh ir du kartus spausdinkite failo turinį naudodami `katė` komandą ir `skaityti` komandą su ciklu while. Tai galite aplankyti pamoka Norėdami sužinoti daugiau apie failo skaitymą eilutėmis.

Rašomas failas „bash“

Sukurkite „bash“ failą naudodami šį scenarijų, kad įrašytumėte naują turinį į naują failą ir pridėtumėte to failo duomenis.

writefile.sh

#!/bin/bash

išmetė „Įveskite tekstą“
#Skaitykite eilutės duomenis
skaitytistr1
#Įtraukite įvesties duomenis į failą pirmą kartą
išmetė $ str1 >test.txt

išmetė „Įveskite kitą tekstą“
#Skaitykite kitus eilutės duomenis
skaitytistr2
#Pridėkite įvesties duomenų failo pabaigoje
išmetė $ str2 >>test.txt

#Rodyti visą failo turinį
išmetė ``katėtest.txt``

Išėjimas:

Paleiskite scenarijų.

$muštiwritefile.sh

Paleidus scenarijų pasirodys ši išvestis.

Eiti į viršų

Vamzdžiai

Vamzdis naudojamas nukreipti bet kurią komandos išvestį į kitą komandų įvestį. Jis gali būti naudojamas tarp skirtingų tipų „bash“ komandų, kad būtų sukurtas konkretus išėjimas. Standartinis įėjimas yra prijungtas prie standartinės „Linux“ išvesties vamzdžiu. Norėdami gauti norimą išvestį, turite nustatyti komandą iš eilės su vamzdžio (|) simboliu. Dvi ar daugiau komandų gali būti vykdomos kartu vienoje komandoje naudojant vamzdį. Norėdami atlikti tą pačią užduotį, turite vykdyti kelias komandas keliose eilutėse be vamzdžio. Taigi, vamzdžių naudojimas yra labai naudingas atliekant daugelio tipų užduotis trumpai.

sintaksė:

1 komanda|2 komanda|...

Čia komandos1 išvestis bus perduodama kaip komandos2 įvestis.

To paties tipo užduotis atliekama su vamzdžiu ir be vamzdžio kitoje šio skyriaus dalyje. Tarkime, teksto failas pavadinimu marks.txt pateikiamas su šiais duomenimis.

marks.txt

Asraf CSE-409 79

Kabir CSE-304 95

Keya TPP-101 67

Asraf CSE-304 88

Keya TPP-409 90

Asraf CSE-101 92

Turite surūšiuoti failo duomenis ir išsiaiškinti bei atsispausdinti visą studento vardo „K. taip . Šią užduotį galite atlikti vykdydami kelias komandas, nenaudodami vamzdžio, kuris parodytas kitame skyriuje. Norint gauti norimą išvestį, reikės paleisti šias komandas. Pirma komanda surūšiuos failą. Antroji komanda ieškos įrašo „K. taip naudojant „ suimti `komanduoti ir išsaugoti išvestį temp.txt failą. Trečioji komanda suskaičiuos visas a eilutes temp.txt failą naudojant „wc“ komandą.

$rūšiuotimarks.txt
$suimti „Keya“marks.txt>temp.txt
$wc -jietemp.txt

Išėjimas:

Byloje yra du studento įrašai „Keya“. Taigi, paleidus aukščiau pateiktas komandas, pasirodys tokia išvestis.

Galite lengvai sujungti aukščiau pateiktas tris komandas ir gauti tą pačią išvestį vykdydami vieną komandą su vamzdžiu, kuris parodytas šioje komandoje. Norint gauti išvestį, čia nereikia jokių laikinų failų. Čia „išvestis rūšiuoti 'komanda bus perduota kaip įvestis' suimti „komanda ir„ išvestis “ suimti `komanda bus perduota kaip įvestis „wc“ komandą.

$rūšiuotimarks.txt| suimti „Keya“ | wc -jie

Išėjimas:

Vykdydami aukščiau nurodytą komandą, gausite tokią išvestį, kaip ir ankstesnės komandos išvestis. Komandos rezultatas bus 2.

Eiti į viršų

Išvada:

Šiame vadove bandoma aptarti naudingiausias ir būtiniausias bash scenarijų kalbos temas. Tikimės, kad skaitytojui bus naudinga perskaičius šią pamoką ir galės efektyviau parašyti „bash“ scenarijų.