Sisu:
- Kommentaarid
- kaja käsk
- Muutujad
- Tingimuslik avaldus
- Silmused
- Funktsioonid
- Programmide kutsumine skriptiga
- Menüüde loomine
- Käsurea töötlemine
- Aritmeetika
- Stringidega manipuleerimine
- Tagastuskoodide tagastamine skriptist ja teise skripti püüdmine
- Failide lugemine ja kirjutamine
- Torud
Kommentaarid
Koodiga kommentaaride lisamine on iga programmeerimiskeele oluline osa. Kommentaare ei analüüsita skriptiga täitmise ajal. Lugeja saab igast koodist õigesti aru, kui see on hästi kommenteeritud. Kommentaari saate lisada bash -skriptiga mitmel viisil. Selles osas on näidatud, kuidas bash-skriptis ühe- ja mitmerealisi kommentaare lisada. Looge bash -fail järgmise skriptiga, et teada saada bash -kommentaari kasutamist. Siin kasutatakse sümbolit '#' üherealise kommentaari lisamiseks ja ühe tsitaati (') koos': 'kasutatakse mitmerealiste kommentaaride lisamiseks.
bash_comment.sh
#!/bin/bash
#Võtke sisendiks number
viskas välja 'Sisestage number'
loeet
:'
Kontrollige, kas sisendnumber on
vähem kui 10 või suurem kui 10 või 10
'
kui [[ $ a -lt 10 ]]
siis
viskas välja 'Arv on väiksem kui 10'
elif [[ $ a -gt 10 ]]
siis
viskas välja 'Arv on suurem kui 10'
muidu
viskas välja 'Arv on 10'
olla
Väljund:
Käivitage skript.
$löömabash_comment.sh
Siin käivitatakse skript kolm korda sisendväärtusega 3, 10 ja 90. Ilmub järgmine väljund.
Kui soovite bashi kommenteerimise kohta rohkem teada saada, saate seda kontrollida seda õpetust .
kaja käsk
Käsku 'echo' kasutatakse bash -is terminali väljundi printimiseks. Väljundi printimiseks erineval viisil saab bash -i käsuga echo kasutada erinevaid valikuid. Looge järgmise skriptiga bash -fail, et teada käsu 'echo' kahte lihtsat kasutamist. Siin trükib esimene käsk 'echo' lihtsa teksti andmed uue reaga ja teine kaja käsk prindib lihtsa teksti ilma uue reata.
echo_test.sh
#!/bin/bash#Printige esimene tekst
viskas välja 'Printige tekst uue reaga'
#Printige teine tekst
viskas välja -n 'Printige tekst ilma uue reata'
Väljund:
Käivitage skript.
$löömaecho_test.shPärast ülaltoodud käsu täitmist ilmub järgmine väljund.
Bash'is saab käsku 'echo' kasutada ka palju muud. Seda õpetust saate vaadata käsu 'echo' kohta lisateabe saamiseks.
Muutujad
Muutujadeklaratsioon on iga programmeerimiskeele vajalik osa. Bash -muutujaid saab deklareerida erineval viisil. Kui muutujale on määratud väärtus, ei kasutata muutuja alguses ühtegi sümbolit. Muutuja väärtuse lugemise ajal kasutatakse muutuja nime juures sümbolit „$”. Muutujat saab kasutada terminalist või mis tahes bash -skriptis.
Järgmised käsud deklareerivad stringimuutuja nimega mystr konkreetse väärtusega ja seejärel printige terminalis muutuja väärtus.
$mystr='Mulle meeldib bash -programmeerimine'$viskas välja $ mystr
Väljund:
Looge bash -fail järgmise skriptiga. Siin on deklareeritud kaks muutujat. Need on $ a ja $ b . Kui sisendväärtus, mis on salvestatud $ a on võrdne $ b siis sõnum, Arvud on võrdsed trükitakse muidu Arvud pole võrdsed trükitakse.
var.sh
#!/bin/bashviskas välja 'Sisestage number'
loeet
b=100
kui [[ $ a -ekv $ b ]]
siis
viskas välja 'Arvud on võrdsed'
muidu
viskas välja 'Arvud pole võrdsed'
olla
Väljund:
Käivitage skript.
$löömavar.shÜlaltoodud käsku täidetakse kaks korda väärtustega 56 ja 100. Ilmub järgmine väljund.
Kui soovite bash -muutujate kohta rohkem teada saada, saate seda kontrollida seda õpetust .
Tingimuslik avaldus
Nagu teistgi programmeerimiskeelt, saate bash -is kasutada tingimuslauset. ' Kui-siis-muidu 'Ja' juhtum Avaldusi kasutatakse peamiselt tingimuste avalduste rakendamiseks mis tahes programmeerimiskeeles. Tingimuslause kasutamine, kasutades 'Kui' avaldus on näidatud selle õpetuse selles jaotises. Looge järgmise skriptiga bash -fail, kus kasutatakse tingimuslauset. Siin võetakse kasutajalt kaks väärtust sisendiks ja salvestatakse muutujatesse, $ kood ja $ vanus . Väärtuse kontrollimiseks kasutatakse lauset „kui” $ vanus on suurem või võrdne 18 ja väärtus $ kood on 1100 . Kui mõlemad tingimused on tõesed, kuvatakse teade, Teil on õigus filmi vaadata trükitakse muidu Te ei saa filmi vaadata trükitakse.
kond.sh
#!/bin/bashviskas välja 'Sisesta oma kood'
loekoodi
viskas välja „Sisestage oma vanus”
loevanus
kui [[ $ vanus -anna 18 && $ kood -ekv '1100' ]]
siis
viskas välja 'Teil on õigus filmi vaadata'
muidu
viskas välja 'Te ei saa filmi vaadata'
olla
Väljund:
Käivitage skript.
$löömakond.shPärast erinevate sisendväärtuste võtmist kuvatakse järgmine väljund. Esmakordse täitmise korral antakse koodiks 1100 ja vanuseks 5 ning kui tingimus tagastab nende väärtuste puhul vale. 1100 on antud koodina ja 45 vanusena teise teostuse korral, mis tagastab tingimuse true juhul.
Kui soovite bash tingimuslause kohta rohkem teada saada, saate seda õpetust vaadata.
Silmused
Kui skripti mõnda osa tuleb mitu korda käivitada, kasutatakse ülesande täitmiseks tsüklit. Bash toetab kolme tüüpi silmuste deklareerimist nagu teised keeled. Need on silmuste jaoks, ajaks ja kuni. Programmeerimisnõuete põhjal kasutatakse skriptis konkreetset tsüklit. Nende kolme tüüpi silmuste kasutusviise näidatakse selles jaotises lihtsate näidete abil.
Kasutamine silmuse jaoks
Looge bash -fail järgmise skriptiga kus eest ' iteratsiooni kasutatakse silmust. 'eest' tsüklit kasutatakse peamiselt andmete loendi või massiivi kordamiseks. Siin kasutatakse nädalapäevade loendit ja iga nädalapäeva nime iteratsioon, kasutades tsüklit. 'kui' avaldust kasutatakse konkreetse sõnumi printimiseks nädalapäeva nime alusel.
jaoks.sh
#Lugege nädalapäeva nime iga tsükli iteratsiooniseestpäevsisseEsmaspäev Teisipäev Kolmapäev Neljapäev Reede Laupäev Pühapäev
teha
#Kontrollige, kas nädalapäeva nimi on esmaspäev või neljapäev
kui [[ $ päev=='Esmaspäev' || $ päev=='Neljapäev' ]]
siis
viskas välja 'Koosolek käes$ päevkell 9.30
#Kontrollige nädalapäeva nime teisipäev või kolmapäev või reede
elif [[ $ päev=='Teisipäev' || $ päev=='Kolmapäev' || $ päev=='Reede' ]]
siis
viskas välja 'Koolitus edasi$ päevkell 11:00
muidu
#Printige puhkus teistele päevadele
viskas välja '$ päevon puhkus '
olla
tehtud
Väljund:
Käivitage skript.
$löömajaoks.shPärast skripti käivitamist kuvatakse järgmine väljund.
Kui soovite rohkem teada saada bash for loop kasutamisest, saate seda õpetust vaadata.
Lingi kasutamine
Looge bash -fail järgmise skriptiga kus samas ` iteratsiooni kasutatakse silmust. See skript prindib need numbrid 1 kuni 20, mis on paaris ja jagatavad 5 -ga. $ loendur muutujat kasutatakse silmuse iteratsiooni juhtimiseks ja selle muutuja väärtust suurendatakse iga korduse korral 1 võrra. Millal 'kui' tingimus tagastab tõese, siis prindib selle väärtuse $ loendur .
#!/bin/bash#Printige sõnum
viskas välja 'Printige paaritud ja 5 -ga jagatavad numbrid'
#Alustage loendur
loendur=1
#Korrake tsüklit, kuni $ loenduri väärtus on väiksem või võrdne 20
samas [ $ loendur -neid kakskümmend ]
teha
#Kontrollige, kas loendur $ jagub 2 -ga ja 5 -ga
kui [[ $ loendur%2-ekv 0 && $ loendur%5-ekv 0 ]]
siis
#Prindi $ loendur ilma uue reata
viskas välja '$ loendur'
olla
#Indrement $ loendur 1 võrra
((loendur ++))
tehtud
viskas välja 'Valmis'
Väljund:
$löömasamas.sh1-20 piires on ainult arvud, mis on paaris ja jaguvad 5-ga. Pärast skripti käivitamist kuvatakse järgmine väljund.
Kui soovite rohkem teada saada bashi kasutamisest samas ` silmus, siis saate kontrollida seda õpetust .
Kasutamine kuni silmuseni
Looge bash -fail järgmise skriptiga kus kuni ` iteratsiooni kasutatakse silmust. See skript prindib kõik paaritu arvud vahemikus 0 kuni 20. $ n muutujat kasutatakse selles skriptis tsükli kordamiseks.
kuni.sh
#!/bin/bash#Initsialiseeri muutuja, n
n=kakskümmend
#Korda tsüklit, kuni $ n väärtus on suurem kui 0
kuni [ $ n -lt 0 ]
teha
#Kontrollige, kas n väärtus on paaritu
kui [[ $ n%2-gt 0 ]]
siis
viskas välja $ n
olla
#Suurendage n väärtust 1 võrra
((n=$ n-1))
tehtud
Väljund:
Käivitage skript.
$löömakuni.shSkript prindib kõik paarisarvud vahemikus 20 kuni 1. Pärast skripti käivitamist kuvatakse järgmine väljund.
Funktsioonid
Kui koodiplokki tuleb skriptis mitu korda täita, kasutatakse ülesande täitmiseks funktsiooni. Funktsiooni peate nimetama ainult siis, kui funktsioonis määratletud skripti tuleb mitu korda täita, mitte sama skripti mitu korda lisada. Esimese ja lõpu esimest sulgu kasutatakse funktsiooni nimega funktsiooni deklareerimiseks bash -skriptis. Funktsiooni saab nimetada ainult funktsiooni nimega bash -is. Bash ei toeta funktsiooni argumente nagu teine standardne programmeerimiskeel. Kuid väärtuse saab bash -funktsioonile edastada ka käesolevas jaotises näidatud viisil. Väärtuse saab funktsioonist tagastada koos tagastusavaldusega või ilma tagastuslauset kasutamata.
Looge järgmise skriptiga bash -fail, et teada saada, kuidas funktsioone bash -skriptis deklareerida ja kutsuda. Skriptis on deklareeritud kolm funktsiooni. Esimene funktsioon deklareeritakse lihtsa sõnumi printimiseks, Bashi programmeerimine algajale . Teine funktsioon on deklareeritud muutujale stringiväärtuse määramiseks, $ return_str mis trükib, Õppige Linuxi vihje abil bash -programmeerimist pärast funktsiooni helistamist. Kolmas funktsioon on deklareeritud lugema argumendi väärtust ringraadiusena, mis antakse funktsiooni kutsumise ajal. Siin, kohalik kasutatakse argumendi väärtuse lugemiseks. See funktsioon arvutab ringi pindala raadiuse väärtuse alusel, kasutades valemit, πr2 ja printige arvutatud ala väärtus.
func.sh
#!/bin/bash#Deklareerige lihtne funktsioon
funktsiooniprint_message()
{
viskas välja 'Bashi programmeerimine algajale'
}
#Deklareeri funktsioon stringi väärtuse tagastamiseks
funktsiooniret_strdata()
{
#Initsialiseeri muutuja stringi väärtusega
return_str='Õppige Linuxi vihjega bash -programmeerimist'
}
#Deklareerige funktsioon argumendi väärtuse lugemiseks
funktsiooniarvuta_piirkond()
#Lugege läbitud argumendi väärtust
kohalik raadius=$ 1
piirkonnas= $(viskas välja $ raadius*$ raadius*3.14
#Helistage lihtsa sõnumi printimiseks
print_message
#Helistage funktsioonile, mis määrab muutujale stringiväärtuse
ret_strdata
#Printige muutuja väärtus
viskas välja $ return_str
#Lugege raadiuse väärtust
viskas välja 'Sisestage raadiuse väärtus'
loetööd
#Helistage raadiuse väärtusega funktsioonile
arvuta_piirkond$ rad
Väljund:
Käivitage skript.
$löömafunc.shPärast skripti käivitamist kuvatakse järgmine väljund. Esimesed kaks rida prinditakse, helistades funktsioonidele, print_message () ja ret_strdata () . Viimane rida prinditakse funktsiooni kutsudes, arvuta_piirkond () sisendraadiuse väärtusega.
Kui soovite teada stringi tagastamisest bash -funktsioonist, saate seda teha see õpetus .
Programmide kutsumine skriptiga
Te saate kasutada mitut tüüpi käske, et helistada teistele programmidele mis tahes bash -skriptis, näiteks allikas, bash, eval, täideviija , jne. Oletame, et kolm bash -faili, add.sh , lahutama.sh, korrutada.sh ja jagada.sh loodud liitmiseks, lahutamiseks, korrutamiseks ja jagamiseks. Siin, lahutama.sh ja jagunemine.sh loe käsurea argumente. Kõigi nende nelja faili skript on toodud allpool.
add.sh
#!/bin/bashet=60
b=40
((tulemus=$ a+$ b))
viskas välja 'Lisamine$ a+$ b=$ tulemus'
lahutama.sh
#!/bin/bashet=$ 1
b=2 dollarit
((tulemus=$ a-$ b))
viskas välja 'Lahutamine$ a-$ b=$ tulemus'
korrutada.sh
#!/bin/bash((tulemus=$ 1*2 dollarit))
viskas välja '1 ja 2 dollari korrutamine on$ tulemus'
jaga.sh
#!/bin/bashet=$ 1
b=2
((tulemus=$ a/$ b))
viskas välja 'Jagunemine$ akõrval$ bon$ tulemus'
Looge bash -fail nimega, callpro.sh järgmise skriptiga, et helistada mainitud bash -failidele, kasutades käske source, bash, eval ja exec. Enne järgmise skripti käivitamist peate määrama ülaltoodud nelja faili täitmisloa. Helistamiseks kasutatakse käsku 'source' add.sh faili. käsku 'bash' kasutatakse faili subtract.sh täitmiseks. käsku 'eval' kasutatakse faili multiply.sh käivitamiseks. Käsu 'eval' käsurea argumentidena saadetakse kaks sisendväärtust. Viimane käsk on käsk exec, mis töötab ainult absoluutse tee korral. Selleks on skriptis antud faili divide.sh täielik tee nimi.
callpro.sh
#!/bin/bashskript 1='add.sh'
skript2='lahutama.sh'
skript3='multiply.sh'
skript4='/home/fahmida/code/divide.sh'
allikas '$ script1'
lööma $ script2 viiskümmend kakskümmend
viskas välja 'Sisestage a väärtus'
loeet
viskas välja 'Sisestage b väärtus'
loeb
eval lööma $ script3 $ a $ b
täideviija $ script4 30
Väljund:
Käivitage skript.
$löömacallpro.shPärast skripti käivitamist kuvatakse järgmine väljund.
Menüüde loomine
Bashis on kasulik käsk lihtsa menüü loomiseks, mida nimetatakse 'vali' käsk. Selle käsu abil saab luua erinevat tüüpi menüüsid. Selle käsu abil menüü loomiseks kasutatakse konkreetset andmeloendit. Kasutamise nägemiseks looge järgmise koodiga bash -fail 'vali' käsk menüü loomiseks. Selles näites prinditakse viie üksuse loend menüüna ja see palub kasutajal valida loendist mis tahes keele. Valitud väärtus salvestatakse muutujale, $ keel mis trükitakse hiljem, sidudes teise stringiga. Skript küsib pidevalt keele valimist, kuni kasutaja vajutab 6 skripti järgi lõpetada.
menu.sh
#!/bin/bash#Printige sõnum kasutajale
viskas välja 'Valige oma lemmik keel'
# Määrake menüüelemendi loend
valikeelsisseC# Java PHP Python Bash Välju
teha
#Printige valitud väärtus
kui [[ $ keel=='Välju' ]]
siis
väljumine 0
muidu
viskas välja 'Valitud keel on$ keel'
olla
tehtud
Väljund:
Käivitage skript.
$löömamenu.shVastavalt järgmisele väljundile vajutas kasutaja esimest korda nuppu 3, mis printis PHP -d, ja vajutas teist korda nuppu, mis lõpetas skripti.
Kui soovite rohkem teada saada bash -menüü loomisest valikuga „select”, võite külastada seda õpetust.
Käsurea töötlemine
Mõnikord peame käsurealt skripti käivitades esitama sisendväärtused. Seda ülesannet saab bash'is teha kahel viisil. Üks võimalus on kasutada argumendimuutujaid ja teine võimalus on kasutada funktsiooni getopts. Selles jaotises on näidatud käsurea sisendandmete lugemine terminalist argumentmuutuja abil.
Looge käsurea argumendi väärtuse kasutamise nägemiseks järgmise skriptiga bash -fail. See skript loeb kolm käsurea argumenti, mis salvestatakse muutujatesse $ operand1, $ operand2 ja $ operator. Skripti nõuetekohaseks täitmiseks peavad esimese ja kolmanda argumendi väärtuseks olema number ning teise argumendi väärtus peab olema ükskõik milline neljast aritmeetilisest operaatorist („+”, „-”, „/”, „x”). kui avaldus kontrollib $ operaatori väärtust ja teeb operatsiooni põhjal operatsiooni ning prindib väärtuse.
cl1.sh
#!/bin/bash#Printige argumendi muutujad
viskas välja „Argumendi väärtused on: $ 1 $ 2 $ 3”
# Salvestage argumentide väärtused
operand 1=$ 1
operand2=3 dollarit
operaator=2 dollarit
#Kontrollige aritmeetilise toimingu tegemiseks teise käsu argumendi väärtust
kui [[ $ operaator=='+' ]]
siis
((tulemus=$ operand1+$ operand2))
elif [[ $ operaator=='-' ]]
siis
((tulemus=$ operand1-$ operand2))
elif [[ $ operaator=='x' ]]
siis
((tulemus=$ operand1*$ operand2))
elif [[ $ operaator=='/' ]]
siis
((tulemus=$ operand1/$ operand2))
olla
# printige tulemus
viskas välja -Ja 'Tulemus on =$ tulemus'
Väljund:
Käivitage skript.
$löömacl1.shSkript käivitatakse nelja tüüpi aritmeetikaoperaatorite jaoks neli korda. Argumendi väärtuste jaoks kuvatakse järgmine väljund, 6 + 3, 6 - 3, 6 x 3 ja 6/3 .
Argumendi väärtusi saab edastada nime-väärtuse paariga bash-is. Looge järgmise skriptiga bash -fail, et näidata, kuidas nimega argumendi väärtusi lugeda. Skript loeb kahte argumendimuutujat. Nimega argumendi väärtused trükitakse skripti esimesse lausesse. Järgmisena kasutatakse for -tsüklit käsurea argumentide väärtusi sisaldava massiivi kordamiseks. Massiivi iga element eraldatakse võtme-väärtuse paariks käsuga 'cut'. Järgmisena kasutatakse juhtumivõtet konkreetse sõnumi printimiseks võtmeväärtuse alusel.
cl2.sh
. #! /olen/lööma#Printige argumendi muutujad
viskas välja „Argumendi väärtused on: $ 1 $ 2”
#Lugege iga argumenti eraldi, kasutades tsüklit
eestvihanesisse '[email protected]'
teha
#Eraldage argumendi nimi ja väärtus
võti= $(viskas välja $ arg | lõigatud -f1 -d=)
väärtus= $(viskas välja $ arg | lõigatud -f2 -d=)
#Printige sõnum argumendi nime põhjal
juhtum $ võti sisse
nimi) viskas välja 'Õpilase nimi =$ väärtus';;
märk) viskas välja 'Saadud märk =$ väärtus' ;;
*)
esac
tehtud
Väljund:
Käivitage skript järgmiste käsurea argumentidega.
$löömacl2.shnimi= Abir Hossainmärk=90Ülaltoodud käskudes on esitatud kaks käsurea argumenti. Need on nimi = Abir Hossain ja märk = 90 . nimi ja märke eraldatakse skriptiga ja pärast väljundi vormindamist trükitakse kaks väärtust.
Käsurea argumentide töötlemine, kasutades getopts funktsiooni selles juhendis ei käsitleta. Kui soovite teada käsurea töötlemise kohta, kasutades getopts funktsiooni, siis saate külastada seda õpetust .
Aritmeetika
Aritmeetiliste toimingute tegemine on iga programmeerimiskeele tavaline nõue. Bash teeb aritmeetilisi toiminguid teistmoodi kui mõni teine tavaline programmeerimiskeel. Bashis saab aritmeetilisi toiminguid teha mitmel viisil. Selles jaotises on näidatud üks aritmeetilise toimingu tegemise lihtsatest viisidest. Looge bash -fail järgmise skriptiga. Selles skriptis on näidatud nelja tüüpi aritmeetilisi toiminguid. Lihtsaid summeerimis- ja jagamisoperatsioone näidatakse skripti alguses kahekordsete sulgude abil. Järgmisena kuvatakse suurendamiseelne toiming. Lõpuks on skripti viimases osas näidatud kiiroperaatori kasutamise viis.
arith.sh
#!/bin/bash# Arvutage summa
tulemus= $((viiskümmend+25))
# Printige summeerimisväärtus
viskas välja 'summa =$ tulemus'
# Arvutage jaotus
tulemus= $((viiskümmend/25))
# Prindi jaotuse väärtus
viskas välja jaotus =$ tulemus'
# Määrake väärtusele N
N=10
# Kasvab eelnevalt
((--N))
# Printige väärtus N
viskas välja 'Väärtus pärast kahandamist =$ N'
# Kasutades kiiroperaatorit
((N +=10 ))
# Printige väärtus N
viskas välja „Väärtus pärast 10 lisamist =$ N'
Väljund:
Käivitage skript.
$löömaarith.shPärast skripti käivitamist kuvatakse järgmine väljund.
Kõik aritmeetilised toimingud tehakse ülaltoodud skripti topelt sulgudes. Kuid võite kasutada ' lase ',' väljend 'Ja' bc 'Käsk teha aritmeetiline operatsioon bashis. Kui soovite nende käskude kohta bash aritmeetiliste toimingute kohta rohkem teada saada, võite külastada seda õpetust.
Stringide manipuleerimine
Bashi stringi andmetega saab teha mitut tüüpi ülesandeid. Mõned neist ühendavad stringi, võrdlevad stringi, jagavad stringi, muudavad stringi väiketähte jne. Stringitoimingute tegemiseks pole sisseehitatud stringifunktsioone, nagu teised bash-i standardkeeled. Selle õpetuse selles osas käsitletakse mõningaid tavalisi stringi manipuleerimisi.
Ühendav string
Kahe või enama stringi liitmist nimetatakse stringide ühendamiseks. Nöör ühendatakse bash'is üksteise järel asetades. Stringide liitmise kasutamise näitamiseks looge järgmise skriptiga bash -fail. Kaks stringimuutujat initsialiseeritakse ja prinditakse pärast muutujate kombineerimist. Siin on sisu $ string1 ja $ string2 ühendatakse ja trükitakse.
concat.sh
#!/bin/bash#Initsialiseeri esimene stringimuutuja
string1='Mulle meeldib '
#Initsialiseeri teine stringimuutuja
string2='Bashi programmeerimine'
#Printige pärast mõlema stringi ühendamist
viskas välja '$ string1$ string2'
Väljund:
Käivitage skript.
$löömaconcat.shPärast skripti käivitamist kuvatakse järgmine väljund.
Sellest õpetusest saate rohkem teada stringide ühendamise kohta.
Stringi võrdlemine
Bash kasutab stringi andmete võrdlemiseks erinevat tüüpi operaatoreid. Looge järgmise skriptiga bash -fail, et näidata, kuidas kahte stringi andmeid võrrelda. Stringi väärtust peetakse skripti sisendiks, mida võrreldakse teise stringiga. Kui väärtus kattub, kuvatakse teade, Sulle meeldib Python trükitakse muidu Sulle meeldib PERL trükitakse.
võrdle.sh
#!/bin/bashviskas väljaSisestage mis tahes stringi väärtus
loeteksti
#Kontrollige, kas sisendandmed on Pythoniga samaväärsed
kui [ $ tekst=='Python' ];siis
viskas välja 'Sulle meeldib Python.'
muidu
viskas välja 'Sulle meeldib PERL'
olla
Väljund:
Käivitage skript.
$löömavõrdle.shPärast skripti käivitamist kuvatakse järgmine väljund, mille sisendväärtus on „PERL”.
Stringide võrdlemise kohta saate rohkem teavet siit seda õpetust .
Stringi jagamine
Bashil pole stringi andmete jagamiseks sisseehitatud jagamisfunktsiooni. Stringiandmeid saab bash -is jagada mitmel viisil, lähtudes erinevat tüüpi eraldajatest. Looge järgmise skriptiga bash -fail, et näidata, kuidas stringi andmeid saab bashiks jagada. Stringi väärtus võetakse sisendiks. See skript jagab väärtuse $ tekst ruumi põhjal. Siin, IFS muutujat kasutatakse eraldaja määramiseks. `loe` käsku kasutatakse siin tekstiväärtuse jagamiseks ja väärtuste salvestamiseks massiiviks. eest tsüklit kasutatakse massiivi kordamiseks ja iga elemendi väärtuse printimiseks.
split.sh
#!/bin/bash#Sisestage stringi väärtus
viskas väljaSisestage stringi väärtus
loeteksti
# Määrake eraldaja
IFS=''
#Jagage $ teksti väärtus tühikutega piiritletud massiivi
loe -juurdearr<<< '$ tekst'
# Printige massiivi iga väärtus
eestväärtussisse '$ {arr [@]}';
teha
printf '$ väärtus n'
tehtud
Väljund:
Käivitage skript.
$löömasplit.shPärast sisendi võtmist kuvatakse järgmine väljund, Õppige Bashi programmeerimist . See sisendväärtus koosneb kolmest sõnast. Niisiis, string on jagatud kolmeks osaks.
Stringide võrdlemise kohta saate rohkem teavet siit seda õpetust .
Stringi väiketähtede muutmine
Enamikul skriptikeeltel on stringi andmete väiketähtede muutmiseks sisseehitatud funktsioonid. Kuid stringi andmete juhtumit saab bash -is muuta, kasutades 'tr' käsuga või kasutades ': Ülemine' ja ': Madalam' märksõnad. Looge bash -fail järgmise skriptiga, et teada saada, kuidas bash -i väiketähti muuta. Siin teisendatakse esimesed stringi andmed suurtähtede abil '^^' sümbol ja teine string teisendatakse väiketähtede abil 'tr' käsk. 'tr' käsk otsib stringist kõik suured tähed ja teisendab märgid väiketähtedeks.
juhtum.sh
#!/bin/bash#Initsialiseeri esimesed stringi andmed
tekst1='[email protected]'
#Printige $ text1 väärtus, teisendades kõik märgid suurtähtedeks
viskas välja $ {email ^^}
#Initsialiseeri teise stringi andmed
tekst2= 'Bashi programmeerimise põhitõed'
#Printige $ text2 väärtus, teisendades kõik suured tähed väiketähtedeks
viskas välja $ text2 | NS [: ülemine:] [: madalam:]
Väljund:
Käivitage skript.
$löömajuhtum.shPärast skripti käivitamist kuvatakse järgmine väljund.
Stringide võrdlemise kohta saate rohkem teavet siit seda õpetust .
Stringiandmete lugemine silmuse kaudu
Stringiandmed töötavad mis tahes programmeerimiskeele märgimassiivina. Kuidas ' eest 'Tsüklit saab kasutada stringi andmete lugemiseks bash'is, selles jaotises on näidatud. Loo baasfail järgmise skriptiga, et lugeda stringi väärtuse iga osa, kasutades tsüklit.
readstr.sh
#!/bin/bas# Lugege iga teksti sõna silmuse abil
eestväärtussisseBashi programmeerimineeestalgajad
teha
viskas välja $ väärtus
tehtud
Väljund:
Käivitage skript.
$löömareadstr.shPärast skripti käivitamist kuvatakse järgmine väljund.
Stringiandmete kordamise kohta saate lisateavet, kasutades silmust allikast seda õpetust .
Mine üles
Tagastuskoodide tagastamine skriptist ja teise skripti püüdmine
Üks bash -skript saab skripti helistades ja kasutades kasutada skripti tagastamiskoode '$?' tagastusväärtuse lugemiseks. Oletame, et bash -fail nimega esimene.sh tagastab pärast täitmist koodi. Looge teine bash -fail nimega teine.sh ja lisage järgmine skript tagastusväärtuse saamiseks ja mõne muu toimingu tegemiseks. Mõlema faili kood on toodud allpool. esimene.sh failist helistatakse teine.sh faili skripti alguses. esimene.sh tagastab sisendväärtuse põhjal väljumiskoodi. second.sh püüab koodi kinni '$?' ja võrrelge 1. Kui mõlemad väärtused on võrdsed, prinditakse see välja, Sisendarv on suurem kui 100 , muidu prinditakse, Sisendarv on väiksem või võrdne 100 -ga .
esimene.sh
#!/bin/bashviskas välja 'Sisestage arvväärtus'
loen
# Kontrollige, kas sisendväärtus on väiksem või võrdne 100 või mitte
kui [[ $ n -neid 100 ]]
siis
väljumine 0
muidu
väljumine 1
olla
teine.sh
#! /bin/bash#Täitke fail, first.sh
lööma 'first.sh'
#Kontrollige, kas tagastamiskood on 1 või mitte
kui [ $? -ekv 1 ]
siis
viskas välja 'Sisendarv on suurem kui 100'
muidu
viskas välja 'Sisendarv on väiksem või võrdne 100'
olla
Väljund:
Käivitage skript.
$löömateine.shJärgmine väljund kuvatakse, kui skripti täidetakse 55 ja 110 kaks korda.
Failide lugemine ja kirjutamine
Failide lugemine ja kirjutamine on bash -programmeerimise tavalised nõuded. Bashil pole faili lugemiseks või kirjutamiseks ühtegi sisseehitatud funktsiooni, nagu mõni muu keel. Faili bash -vormingus lugemiseks on mitu võimalust. Kõige tavalisem viis faili lugemiseks või kirjutamiseks bash -is on kasutamine 'kass' käsk. Kuid seda käsku kasutatakse kogu faili sisu korraga lugemiseks. Samuti saate rida -realt lugeda mis tahes faili, kasutades mis tahes tsüklit ja `loe` käsk. Kasutades ümbersuunamisoperaatorit, '>' , saate andmeid kirjutada mis tahes bash -faili. Kui soovite andmeid mis tahes faili lisada, peate seda kasutama '>>' operaator. Nii lugemis- kui ka kirjutamistoiminguid näidatakse selle jaotise järgmises osas.
Faili lugemine bash
Looge järgmise skriptiga bash -fail, et lugeda olemasolevat faili nimega „ hardware.txt ’. Selle faili sisu on toodud allpool. Skriptis loetakse kogu faili sisu 'kass' käsku esimene ja järgmine, samas kui tsüklit kasutatakse faili ridade kaupa lugemiseks.
hardware.txt
MonitorKlaviatuur
Hiir
Skanner
Printer
readfile.sh
#!/bin/bashviskas välja 'Faili lugemine kassi käsu abil'
# Lugege faili sisu käsuga 'cat'
sisu=''kasshardware.txt''
viskas välja $ sisu
viskas välja 'Faili lugemine rida -realt silmuse abil'
# Määrake failinimi
faili nimi='hardware.txt'
# Faili iga rida loetakse silmuse iga iteratsiooni abil
samas loerida;
teha
# printige rida
viskas välja $ rida
tehtud<$ failinimi
Väljund:
Käivitage järgmised käsud.
$kasshardware.txt$löömareadfile.sh
Siin prindib esimene käsk faili sisu, hardware.txt ilma bash -skripti käivitamata ja teine käsk käivitab skripti readfile.sh ja printige faili sisu kaks korda, kasutades 'kass' käsk ja `loe` käsk while loopiga. Saate seda külastada õpetus failide ridade kaupa lugemise kohta lisateavet.
Faili kirjutamine bash -vormingus
Looge järgmise skriptiga bash -fail uue sisu kirjutamiseks uude faili ja selle faili andmete lisamiseks.
writefile.sh
#!/bin/bashviskas välja 'Sisestage tekst'
#Lugege stringi andmeid
loestr1
#Lisage esmakordselt faili sisendandmed
viskas välja $ str1 >test.txt
viskas välja 'Sisestage mõni muu tekst'
#Lugege teisi stringi andmeid
loestr2
#Lisage sisestatud andmed faili lõppu
viskas välja $ str2 >>test.txt
#Näidake faili täielikku sisu
viskas välja ''kasstest.txt''
Väljund:
Käivitage skript.
$löömawritefile.shPärast skripti käivitamist kuvatakse järgmine väljund.
Torud
Toru kasutatakse mis tahes käsu väljundi suunamiseks teise käsusisendisse. Seda saab kasutada eri tüüpi bash -käskude vahel konkreetse väljundi genereerimiseks. Standardne sisend on ühendatud Linuxi standardväljundiga toru kaudu. Soovitud väljundi saamiseks peate käsu järjestama toru (|) sümboliga. Pipi abil saab ühe käsuna täita kaks või enam käsku. Sama ülesande täitmiseks peate täitma mitu käsku mitmel real ilma toruta. Niisiis on toru kasutamine väga kasulik mitut tüüpi ülesannete lühikeseks tegemiseks.
süntaks:
käsk 1|käsk 2|...Siin edastatakse käsu1 väljund käsu2 sisendina.
Sama tüüpi ülesandeid tehakse toruga ja ilma toruta selle jaotise järgmises osas. Oletame tekstifaili nimega marks.txt antakse koos järgmiste andmetega.
marks.txt
Asraf CSE-409 79Kabir CSE-304 95
Keya CSE-101 67
Asraf CSE-304 88
Keya CSE-409 90
Asraf CSE-101 92
Peate faili andmed sorteerima ja uurima ja printima kõik õpilase nime „K” kirjed jah ' . Seda ülesannet saate teha, käivitades mitu käsku ilma toru kasutamata, mis on näidatud järgmises jaotises. Soovitud väljundi saamiseks tuleb käivitada järgmised käsud. Esimene käsk sorteerib faili. Teine käsk otsib kirjet „K jah ' kasutades ` haaret `käske ja salvestage väljund temp.txt faili. Kolmas käsk loeb kokku a read temp.txt faili kasutades 'wc' käsk.
$sorteerimamarks.txt$haaret 'Keya'marks.txt>temp.txt
$tualett -neidtemp.txt
Väljund:
Failis on kaks õpilase kirjet „Keya”. Nii et pärast ülaltoodud käskude käivitamist ilmub järgmine väljund.
Saate hõlpsalt ühendada ülaltoodud kolm käsku ja saada sama väljundi, käivitades ühe käsu toruga, mis on näidatud järgmises käsus. Väljundi saamiseks pole siin vaja ajutist faili. Siin on väljund ` sorteerima 'käsk edastatakse sisendina' haaret `käsk ja` väljund haaret käsku edastatakse 'wc' käsk.
$sorteerimamarks.txt| haaret 'Keya' | tualett -neidVäljund:
Pärast ülaltoodud käsu käivitamist saate järgmise väljundi nagu eelmise käsu väljund. Käsu väljund on 2.
Järeldus:
Selles õpetuses püütakse käsitleda kõige kasulikumaid ja vajalikke bash -skriptikeele teemasid. Loodetavasti saab lugeja sellest õpetuse lugemisest kasu ja saab bash -skripti tõhusamalt kirjutada.