Tartalom:
- Hozzászólások
- echo Parancs
- Változók
- Feltételes nyilatkozat
- Hurok
- Funkciók
- Programok hívása szkriptben
- Menük létrehozása
- Parancssori feldolgozás
- Számtan
- String manipuláció
- Visszaadási kódok visszaadása egy szkriptből, és egy másik szkript befogása
- Olvasás és írás fájlokba
- Csövek
Hozzászólások
Megjegyzések hozzáadása a kóddal elengedhetetlen része minden programozási nyelvnek. A megjegyzéseket a végrehajtáskor a szkript nem értelmezi. Az olvasó minden kódot megfelelően megérthet, ha a kódot jól megjegyzi. Megjegyzést többféleképpen is hozzáadhat a bash scriptben. Ebben a részben bemutatjuk, hogyan adhat hozzá egysoros és többsoros megjegyzéseket egy bash parancsfájlhoz. Hozzon létre egy bash fájlt a következő szkripttel, hogy megtudja a bash megjegyzés használatát. Itt a „#” szimbólum egysoros megjegyzés hozzáadásához használható, az egyetlen idézet („) és a„: ”pedig a többsoros megjegyzések hozzáadásához.
bash_comment.sh
#!/bin/bash
#Vegyen be egy számot bemenetként
kidobta 'Írjon be egy számot'
olvasnak nek
:'
Ellenőrizze a bemeneti számot
kevesebb, mint 10, vagy nagyobb, mint 10, vagy egyenlő 10 -gyel
'
ha [[ $ a -lt 10 ]]
azután
kidobta 'A szám kevesebb, mint 10'
elif [[ $ a -gt 10 ]]
azután
kidobta 'A szám nagyobb, mint 10'
más
kidobta 'A szám egyenlő 10'
lenni
Kimenet:
Futtassa a szkriptet.
$bashbash_comment.sh
Itt a szkript háromszor fut, a bemeneti érték 3, 10 és 90. A következő kimenet jelenik meg.
Ha többet szeretne megtudni a bash kommentelésről, ellenőrizheti ezt az oktatóanyagot .
visszhang parancs
Az 'echo' parancs a bash -ban a kimenet nyomtatására szolgál a terminálon. A bash echo paranccsal különböző lehetőségek használhatók a kimenet különböző módon történő nyomtatásához. Hozzon létre egy bash fájlt a következő szkripttel, hogy megismerje az `echo` parancs két egyszerű használatát. Itt az első 'echo' parancs egy egyszerű szöveges adatot nyomtat ki egy új sorral, a második echo parancs pedig egy egyszerű szöveget új sor nélkül.
echo_test.sh
#!/bin/bash#Nyomtassa ki az első szöveget
kidobta 'Szöveg nyomtatása új sorral'
#Nyomtassa ki a második szöveget
kidobta -n 'Szöveg nyomtatása új sor nélkül'
Kimenet:
Futtassa a szkriptet.
$bashecho_test.shA fenti parancs végrehajtása után a következő kimenet jelenik meg.
Az 'echo' parancsnak sok más felhasználási módja is van a bash -ban. Ebben az oktatóanyagban többet megtudhat az 'echo' parancsról.
Változók
A változó deklaráció minden programozási nyelv szükséges része. A Bash változókat különböző módon lehet deklarálni. Ha egy változóhoz érték van hozzárendelve, akkor a változó elején nincs szimbólum. A „$” szimbólumot a változó nevével együtt használják a változó értékének olvasásakor. A változó használható a terminálról, vagy bármilyen bash szkriptben.
A következő parancsok egy string változót neveznek meg mystr egy adott értékkel, majd nyomtassa ki a változó értékét a terminálban.
$mystr='Szeretem a bash programozást'$kidobta $ mystr
Kimenet:
Hozzon létre egy bash fájlt a következő szkripttel. Itt két változót kell megadni. Ezek $ a és $ b . Ha a bemeneti érték, amely a $ a egyenlő $ b akkor az üzenet, A számok egyenlők különben kinyomtatásra kerül A számok nem egyenlők nyomtatásra kerül.
var.sh
#!/bin/bashkidobta 'Írjon be egy számot'
olvasnak nek
b=100
ha [[ $ a -eq $ b ]]
azután
kidobta 'A számok egyenlők'
más
kidobta 'A számok nem egyenlőek'
lenni
Kimenet:
Futtassa a szkriptet.
$bashvar.shA fenti parancsot kétszer hajtják végre 56 és 100 értékekkel. A következő kimenet jelenik meg.
Ha többet szeretne tudni a bash változókról, ellenőrizheti ezt az oktatóanyagot .
Feltételes nyilatkozat
A másik programozási nyelvhez hasonlóan a bash -ban is használhatja a feltételes utasítást. ' Ha-akkor-más 'És' ügy ’Utasításait főleg feltétel -nyilatkozatok végrehajtására használják bármely programozási nyelven. Feltételes utasítás használata a használatával 'ha' kijelentés az oktatóanyag ezen részében látható. Hozzon létre egy bash fájlt a következő szkripttel, ahol feltételes utasítást használ. Itt két értéket veszünk be a felhasználótól bemenetként, és tároljuk a változókban, $ kód , és $ kor . Az „if” utasítást használjuk az érték ellenőrzésére $ kor nagyobb vagy egyenlő 18 és az értéke $ kód van 1100 . Ha mindkét feltétel teljesül, akkor az üzenet Ön jogosult a film megtekintésére különben kinyomtatásra kerül Ön nem jogosult a film megtekintésére nyomtatásra kerül.
cond.sh
#!/bin/bashkidobta 'Írd be a kódodat'
olvaskód
kidobta 'Add meg az életkorod'
olvaskor
ha [[ $ kor -adni 18 && $ kód -eq '1100' ]]
azután
kidobta 'Ön jogosult a film megtekintésére'
más
kidobta 'Ön nem jogosult a film megtekintésére'
lenni
Kimenet:
Futtassa a szkriptet.
$bashcond.shA következő kimenet jelenik meg, miután különböző bemeneti értékeket vett fel. Az 1100 kódot és 5 az életkort adja meg az első végrehajtáshoz, és ha a feltétel hamis értéket ad vissza ezekhez az értékekhez. Az 1100 kódot, a 45 pedig az életkort adja meg a második végrehajtáshoz, amely igaz értéket ad vissza if feltétel esetén.
Ha többet szeretne tudni a bash feltételes utasításról, akkor ellenőrizze ezt az oktatóanyagot.
Hurok
Ha a szkript egyes részeit többször kell végrehajtani, akkor a ciklus a feladat elvégzésére szolgál. A Bash háromféle hurok deklarációt támogat, mint más nyelvek. Ezek ciklusra szólnak, és addig. A programozási követelmények alapján egy adott hurkot használnak a szkriptben. E három típusú hurok felhasználását ebben a szakaszban mutatjuk be egyszerű példákkal.
Használata hurokhoz
Hozzon létre egy bash fájlt a következő szkripttel, ahol ` érte hurkot használják az iterációhoz. `ért ' ciklus főleg egy adatlista vagy egy tömb iterálására szolgál. Itt a hétköznapok listáját használja, és minden hétköznapi nevet a ciklus használatával iterál. `ha` utasítás egy adott üzenet nyomtatására szolgál a hétköznap neve alapján.
mert.sh
#Olvassa el a hét minden napját a ciklus minden iterációjábanszámáranapban benhétfő kedd szerda csütörtök péntek szombat vasárnap
tedd
#Ellenőrizze, hogy a hétköznap neve hétfő vagy csütörtök
ha [[ $ nap=='Hétfő' || $ nap=='Csütörtök' ]]
azután
kidobta - Találkozó$ nap9:30 órakor
#Ellenőrizze, hogy a hétköznap neve kedd vagy szerda vagy péntek
elif [[ $ nap=='Kedd' || $ nap=='Szerda' || $ nap=='Péntek' ]]
azután
kidobta 'Edzés tovább$ nap11:00 órakor
más
#Nyomtassa ki az „Ünnepet” más napokra
kidobta '$ napünnep van '
lenni
Kész
Kimenet:
Futtassa a szkriptet.
$bashmert.shA szkript futtatása után a következő kimenet jelenik meg.
Ha többet szeretne tudni a bash for loop használatáról, ellenőrizze ezt az oktatóanyagot.
A while ciklus használata
Hozzon létre egy bash fájlt a következő szkripttel, ahol ` míg ` hurkot használják az iterációhoz. Ez a szkript kinyomtatja azokat a számokat 1 -től 20 -ig, amelyek párosak és oszthatók 5 -tel. $ számláló változó a ciklus iterációjának szabályozására szolgál, és ennek a változónak az értékét 1 -gyel növeljük minden iterációban. Amikor `ha` feltétel igaz lesz, majd kinyomtatja a $ számláló .
#!/bin/bash#Nyomtassa ki az üzenetet
kidobta 'Nyomtassa ki azokat a számokat, amelyek párosak és oszthatók 5 -tel'
#Inicializálja a számlálót
számláló=1
#Ismételje meg a ciklust, amíg a $ számláló értéke kisebb vagy egyenlő 20 -nál
míg [ $ számláló -az húsz ]
tedd
#Ellenőrizze, hogy a $ számláló osztható -e 2 -vel és 5 -tel
ha [[ $ számláló%2-eq 0 && $ számláló%5-eq 0 ]]
azután
#Nyomtatás $ számláló új sor nélkül
kidobta '$ számláló'
lenni
#Növelje $ számlálóját 1 -gyel
((számláló ++))
Kész
kidobta 'Kész'
Kimenet:
$bashmíg.shCsak 1-20-as számok vannak, amelyek párosak és oszthatók 5-tel. A következő kimenet jelenik meg a szkript futtatása után.
Ha többet szeretne tudni a bash használatáról míg` hurok, akkor ellenőrizheti ezt az oktatóanyagot .
Használat ciklusig
Hozzon létre egy bash fájlt a következő szkripttel, ahol ` amíg` hurkot használják az iterációhoz. Ez a szkript minden páratlan számot kinyomtat 0 és 20 között. $ n változót használják ebben a szkriptben a ciklus iterálására.
amíg.sh
#!/bin/bash#Inicializálja a változót, n
n=húsz
#Ismételje meg a ciklust, amíg $ n értéke nagyobb, mint 0
amíg [ $ n -lt 0 ]
tedd
#Ellenőrizze, hogy n értéke páratlan -e
ha [[ $ n%2-gt 0 ]]
azután
kidobta $ n
lenni
#Növelje n értékét 1 -gyel
((n=$ n-1))
Kész
Kimenet:
Futtassa a szkriptet.
$bashamíg.shA szkript minden páros számot kinyomtat 20 -tól 1 -ig. A szkript futtatása után megjelenik a következő kimenet.
Funkciók
Ha egy kódblokkot többször kell végrehajtani egy szkriptben, akkor a függvényt használják a feladat végrehajtásához. Csak akkor kell név szerint hívnia a függvényt, ha a függvényben meghatározott szkriptet sokszor kell végrehajtani, nem pedig ugyanazt a szkriptet többször hozzáadni. A kezdő és befejező első zárójelet a függvény nevével használjuk a függvény deklarálásához bash scriptben. A függvény csak a bash függvény nevével hívható meg. A Bash nem támogatja a funkció argumentumot, mint egy másik szabványos programozási nyelv. De az érték a bash függvényhez más módon is átadható, mint ebben a részben látható. Az érték visszaadható a függvényből a return utasítással, vagy a return utasítás használata nélkül.
Hozzon létre egy bash fájlt a következő szkripttel, hogy megtudja, hogyan deklarálhatók és hívhatók meg a függvények a bash scriptben. A szkriptben három függvény van deklarálva. Az első függvény egy egyszerű üzenet kinyomtatása, Bash programozás kezdőknek . A második függvény deklarálja, hogy egy karakterlánc értéket rendel egy változóhoz, $ return_str ami nyomtatni fog, Tanuld meg a bash programozást a LinuxHint segítségével a függvény hívása után. A harmadik függvény kijelentette, hogy egy argumentumértéket kör sugarának olvas, amelyet a függvény meghívásakor megadnak. Itt, helyi az argumentum értékének olvasására szolgál. Ez a függvény kiszámítja a kör területét a sugár értéke alapján a képlet segítségével, πr2 és nyomtassa ki a kiszámított területértéket.
func.sh
#!/bin/bash#Nyilvánítson egy egyszerű funkciót
funkcióprint_message()
{
kidobta 'Bash programozás kezdőknek'
}
#Egy funkció deklarálása karakterlánc értékének visszaadására
funkcióret_strdata()
{
#Inicializálja a változót karakterlánc értékkel
return_str='Tanuld meg a bash programozást LinuxHint segítségével'
}
#Deklaráljon függvényt az argumentumérték olvasásához
funkciószámítás_terület()
#Olvassa el az átadott argumentum értékét
helyi sugár=$ 1
terület= $(kidobta $ sugarú*$ sugarú*3.14
#Hívja a funkciót egy egyszerű üzenet nyomtatásához
print_message
#Hívja meg azt a függvényt, amely egy karakterlánc értékét hozzárendeli a változóhoz
ret_strdata
#Nyomtassa ki a változó értékét
kidobta $ return_str
#Olvassa el a sugár értékét
kidobta 'Adja meg a sugár értékét'
olvasmunka
#Hívja meg a függvényt sugárértékkel
számítás_terület$ rad
Kimenet:
Futtassa a szkriptet.
$bashfunc.shA szkript futtatása után a következő kimenet jelenik meg. Az első két sor kinyomtatásra kerül a függvények hívásával, print_message () és ret_strdata () . Az utolsó sor a funkció hívásával nyomtatódik ki, számítás_terület () a bevitt sugár értékével.
Ha tudni akarja, hogy hogyan küldhet vissza egy karakterláncot a bash függvényből, akkor megteheti ezt a tutoriát az.
Programok hívása szkriptben
Sokféle parancs segítségével hívhat más programokat bármilyen bash szkriptben, például forrás, bash, eval, végrehajt Tegyük fel, hogy három bash fájl, add.sh , kivonni.sh, szorozni.sh és osztani.sh összeadás, kivonás, szorzás és osztás végrehajtására jött létre. Itt, kivonni.sh és osztás.sh parancssori argumentumok olvasása. Mind a négy fájl szkriptje az alábbiakban található.
add.sh
#!/bin/bashnak nek=60
b=40
((eredmény=$ a+$ b))
kidobta - A kiegészítés$ a+$ b=$ eredmény'
alvonat.sh
#!/bin/bashnak nek=$ 1
b=2 USD
((eredmény=$ a-$ b))
kidobta - A kivonása$ a-$ b=$ eredmény'
szaporodni.sh
#!/bin/bash((eredmény=$ 1*2 USD))
kidobta 'Az 1 és 2 dollár szorzata az$ eredmény'
oszd meg.sh
#!/bin/bashnak nek=$ 1
b=2
((eredmény=$ a/$ b))
kidobta - A felosztás$ aáltal$ bvan$ eredmény'
Hozzon létre egy bash fájlt, callpro.sh a következő parancsfájl segítségével hívja meg az említett bash fájlokat a source, bash, eval és exec parancsok használatával. A következő parancsfájl futtatása előtt meg kell adnia a végrehajtási engedélyt a fenti négy fájlhoz. A 'source' parancs a hívásra szolgál add.sh fájlt. A `bash` parancs a subtract.sh fájl végrehajtására szolgál. Az `eval` parancs a multiply.sh fájl végrehajtására szolgál. Két bemeneti érték kerül elküldésre parancssori argumentumként az 'eval' parancshoz. Az utolsó parancs az exec parancs, amely csak abszolút útvonallal működik. Ehhez a divide.sh fájl teljes elérési útja szerepel a szkriptben.
callpro.sh
#!/bin/bashscript1='add.sh'
script2='subtract.sh'
script3='multiply.sh'
forgatókönyv4='/home/fahmida/code/divide.sh'
forrás '$ script1'
bash $ script2 ötven húsz
kidobta 'Adja meg a' értékét
olvasnak nek
kidobta 'Adja meg b értékét'
olvasb
eval bash $ script3 $ a $ b
végrehajt $ script4 30
Kimenet:
Futtassa a szkriptet.
$bashcallpro.shA szkript futtatása után a következő kimenet jelenik meg.
Menük létrehozása
Van egy hasznos parancs a bash -ban egy egyszerű menü létrehozásához, amelyet ún `válassza ' parancs. Ezzel a paranccsal különböző típusú menük hozhatók létre. Ez a parancs egy adott adatlistát használ a menü létrehozásához. Hozzon létre egy bash fájlt a következő kóddal a használatának megtekintéséhez `válassza ' parancs a menü létrehozásához. Ebben a példában az öt elemből álló lista menüként lesz kinyomtatva, és arra kéri a felhasználót, hogy válasszon nyelvet a listából. A kiválasztott érték a változóban tárolódik, $ nyelv amelyet később más karakterlánccal összefűzve nyomtatnak ki. A szkript folyamatosan kéri a nyelv kiválasztását, amíg a felhasználó megnyomja 6 befejezni a forgatókönyvből.
menü.sh
#!/bin/bash#Nyomtasson üzenetet a felhasználónak
kidobta 'Válassza ki kedvenc nyelvét'
# Határozza meg a menüelemek listáját
válassza kinyelvban benC# Java PHP Python Bash Kilépés
tedd
#Nyomtassa ki a kiválasztott értéket
ha [[ $ nyelv=='Kijárat' ]]
azután
kijárat 0
más
kidobta 'A kiválasztott nyelv az$ nyelv'
lenni
Kész
Kimenet:
Futtassa a szkriptet.
$bashmenü.shA következő kimenet szerint a felhasználó először megnyomta a 3 gombot, amikor kinyomtatta a PHP -t, és másodszor a 6 -ot, amely befejezte a szkriptet.
Ha többet szeretne tudni a bash menü létrehozásáról a 'select' gombbal, akkor látogassa meg ezt az oktatóanyagot.
Parancssori feldolgozás
Néha beviteli értékeket kell megadnunk, amikor a parancsfájlt parancssorból futtatjuk. Ezt a feladatot kétféleképpen lehet elvégezni bash -ban. Az egyik módszer az argumentumváltozók, a másik pedig a getopts függvény használata. Ebben a szakaszban olvasható a parancssori bemeneti adatok terminálról történő olvasása az argumentumváltozó használatával.
Hozzon létre egy bash fájlt a következő szkripttel, hogy lássa a parancssori argumentum olvasási értékének használatát. Ez a szkript három parancssori argumentumot olvas be, amelyeket a $ operand1, $ operand2 és $ operator változók tárolnak. A szkript megfelelő végrehajtásához az első és a harmadik argumentumértéknek a számnak kell lennie, a második argumentumértéknek pedig a négy számtani operátor bármelyikének („+”, „-”, „/”, „x”) kell lennie. ha utasítás ellenőrzi a $ operátor értékét, és elvégzi a műveletet az operátor alapján, és kinyomtatja az értéket.
cl1.sh
#!/bin/bash#Nyomtassa ki az argumentumváltozókat
kidobta 'Az érvek értéke: $ 1 $ 2 $ 3'
# Tárolja az argumentumértékeket
operandus1=$ 1
operandus2=3 USD
operátor=2 USD
#Ellenőrizze a 2. parancs argumentum értékét az aritmetikai művelet végrehajtásához
ha [[ $ operátor=='+' ]]
azután
((eredmény=$ operand1+$ operand2))
elif [[ $ operátor=='-' ]]
azután
((eredmény=$ operand1-$ operand2))
elif [[ $ operátor=='x' ]]
azután
((eredmény=$ operand1*$ operand2))
elif [[ $ operátor=='/' ]]
azután
((eredmény=$ operand1/$ operand2))
lenni
# nyomtassa ki az eredményt
kidobta -És 'Az eredmény =$ eredmény'
Kimenet:
Futtassa a szkriptet.
$bashcl1.shA szkript négy alkalommal hajtódik végre négyféle aritmetikai operátor esetén. A következő kimenet jelenik meg az argumentumértékekhez, 6 + 3, 6 - 3, 6 x 3 és 6/3 .
Az érvértékek bash név-érték párral továbbíthatók. Hozzon létre egy bash fájlt a következő parancsfájllal, amely megmutatja, hogyan kell olvasni az argumentumértékeket a névvel. A szkript két argumentumváltozót fog olvasni. A névvel ellátott argumentumértékek a szkript első utasításában találhatók. Ezt követően a for ciklus segítségével ismétlődik a parancssori argumentumokat tartalmazó tömb. A tömb minden eleme a 'cut' paranccsal van elválasztva egy kulcs-érték párból. Ezután az esetkifejezést egy adott üzenet kinyomtatására használják a kulcsérték alapján.
cl2.sh
. #! /am/bash#Nyomtassa ki az argumentumváltozókat
kidobta 'Az érvek értéke: $ 1 $ 2'
#Olvassa el az egyes argumentumokat külön a ciklus használatával
számáramérgesban ben '[email protected]'
tedd
#Különálló argumentumnév és érték
kulcs= $(kidobta $ arg | vágott -f1 -d=)
érték= $(kidobta $ arg | vágott -f2 -d=)
#Nyomtasson üzenetet az argumentum neve alapján
ügy $ kulcs ban ben
név) kidobta 'Diák neve =$ értékű';;
Mark) kidobta 'Megszerezte a jelet =$ értékű' ;;
*)
esac
Kész
Kimenet:
Futtassa a parancsfájlt a következő parancssori argumentumokkal.
$bashcl2.shnév= Abir HossainMark=90A fenti parancsokban két parancssori argumentum található. Ezek név = Abir Hossain és jel = 90 . név és jelek a szkript elválasztja őket, és a kimenet formázása után két érték nyomtatódik ki.
A parancssori argumentumok feldolgozása a használatával felszáll funkciót nem tárgyalja ez az oktatóanyag. Ha szeretne tudni a parancssori feldolgozásról a használatával felszáll funkció, akkor meglátogathatja ezt az oktatóanyagot .
Számtan
Az aritmetikai műveletek elvégzése minden programozási nyelv általános követelménye. A Bash az aritmetikai műveletet más módon végzi, mint egy másik szabványos programozási nyelv. Számos módja van a számtani műveletek végrehajtására a bash -ban. Az aritmetikai művelet elvégzésének egyik egyszerű módja látható ebben a részben. Hozzon létre egy bash fájlt a következő szkripttel. Ebben a szkriptben négyféle számtani művelet látható. Egy egyszerű összegzési és osztási műveletek láthatók a szkript elején található kettős első zárójelek használatával. Ezután megjelenik a növekmény előtti művelet. Végül a gyorsíró operátor használatának módja a szkript utolsó részében látható.
arith.sh
#!/bin/bash# Számítsa ki az összeget
eredmény= $((ötven+25))
# Az összegzési érték nyomtatása
kidobta 'összeg =$ eredmény'
# Számítsa ki az osztást
eredmény= $((ötven/25))
# Nyomtatási osztási érték
kidobta 'felosztás =$ eredmény'
# Rendeljen értéket N -hez
N=10
# Előzetes növelés
((--N))
# Nyomtassa ki az N értékét
kidobta 'Érték csökkentés után =$ N'
# Gyorsíró operátor használata
((N +=10 ))
# Nyomtassa ki az N értékét
kidobta 'Érték hozzáadása után 10 =$ N'
Kimenet:
Futtassa a szkriptet.
$basharith.shA szkript futtatása után a következő kimenet jelenik meg.
Minden számtani művelet dupla zárójel használatával történik a fenti szkriptben. De használhatja ' hagyja ',' kifejezés 'És' időszámításunk előtt 'Parancs a számítási művelet végrehajtására bash -ban. Ha többet szeretne megtudni ezekről a parancsokról a bash aritmetikai műveletek végrehajtásához, akkor látogassa meg ezt az oktatóanyagot.
Karakterlánc -manipuláció
A bash -ban lévő karakterlánc -adatokkal sokféle feladat elvégezhető. Néhányan karakterláncot kapcsolnak össze, összehasonlítják a karakterláncot, szétválasztják a karakterláncot, a karakterlánc kis- és nagybetűit változtatják, stb. Nincsenek beépített karakterlánc-függvények, mint például a bash többi szabványos nyelve a karakterlánc-műveletek végrehajtásához. Néhány gyakori karakterlánc -manipulációt tárgyal az oktatóanyag ezen része.
Összefűző karakterlánc
Két vagy több karakterlánc összeillesztését karakterlánc -összefűzésnek nevezzük. A karakterláncot bash -ban egyesítik egymás után. Hozzon létre egy bash fájlt a következő szkripttel a karakterlánc -összefűzés használatának bemutatásához. Két karakterlánc -változót inicializálnak és nyomtatnak a változók egyesítése után. Itt a tartalma $ string1 és $ string2 összevonásra és nyomtatásra kerül.
concat.sh
#!/bin/bash#Inicializálja az első karakterlánc -változót
karakterlánc1='Szeretem '
#Inicializálja a második karakterlánc -változót
karakterlánc2='Bash programozás'
#Nyomtassa ki mindkét karakterlánc kombinálása után
kidobta '$ string1$ string2'
Kimenet:
Futtassa a szkriptet.
$bashconcat.shA szkript futtatása után a következő kimenet jelenik meg.
Ebből az oktatóanyagból többet megtudhat a karakterláncok összekapcsolásáról.
A karakterlánc összehasonlítása
A Bash különböző típusú operátorokat használ a karakterláncok adatainak összehasonlítására. Hozzon létre egy bash fájlt a következő szkripttel, hogy megmutassa, hogyan lehet összehasonlítani két karakterlánc -adatot. A karakterlánc értéke a szkript bemenetének számít, amelyet egy másik karakterlánccal hasonlítanak össze. Ha az érték megegyezik, akkor egy üzenet, Szereted a Python -t különben kinyomtatásra kerül Tetszik a PERL nyomtatásra kerül.
hasonlítsa össze.sh
#!/bin/bashkidobtaAdjon meg bármilyen karakterlánc értéket
olvasszöveg
#Ellenőrizze, hogy a bemeneti adatok megegyeznek -e a Pythonéval
ha [ $ szöveg=='Piton' ];azután
kidobta - Szereted a Python -t.
más
kidobta 'Tetszik PERL'
lenni
Kimenet:
Futtassa a szkriptet.
$bashhasonlítsa össze.shA következő kimenet jelenik meg a szkript futtatása után, ahol a bemeneti érték „PERL”.
A karakterláncok összehasonlításáról többet tudhat meg innen ezt az oktatóanyagot .
Karakterlánc felosztása
A Bash nem rendelkezik beépített felosztási funkcióval a karakterlánc-adatok felosztására. A karakterlánc -adatok bash -ban többféleképpen oszthatók fel, különböző típusú elválasztók alapján. Hozzon létre egy bash fájlt a következő parancsfájllal, amely megmutatja, hogyan oszthatók fel a karakterlánc -adatok bash -ra. A karakterlánc értéke bemenetként jelenik meg. Ez a szkript felosztja a (z) értékét $ szöveg tér alapján. Itt, a IFS változó a határoló beállítására szolgál. `olvasni` parancsot itt használjuk a szövegérték felosztására és az értékek tömbbe történő tárolására. számára ciklus a tömb iterálására és az egyes elemek értékének kinyomtatására szolgál.
osztott.sh
#!/bin/bash#Írja be a karakterlánc értékét
kidobtaAdjon meg egy karakterlánc értékét
olvasszöveg
# Állítsa be az elválasztót
IFS=''
#Ossza fel a $ szöveg értékét egy tömbbe a szóközhatároló alapján
olvas -nak nekarr<<< '$ szöveg'
# Nyomtassa ki a tömb minden értékét
számáraértékban ben '$ {arr [@]}';
tedd
printf '$ értékű n'
Kész
Kimenet:
Futtassa a szkriptet.
$bashosztott.shA bemenet felvétele után a következő kimenet jelenik meg: Tanuld meg a Bash programozást . Ez a beviteli érték egy három szóból álló szöveg. Tehát a karakterlánc három részre oszlik.
A karakterláncok összehasonlításáról többet tudhat meg innen ezt az oktatóanyagot .
A karakterlánc kis- és nagybetűinek megváltoztatása
A legtöbb szkriptnyelv beépített funkcióval rendelkezik a karakterlánc-adatok kis- és nagybetűinek megváltoztatásához. De a karakterlánc -adatok esetét a bash használatával lehet megváltoztatni a használatával `tr` paranccsal vagy használatával ':felső' és ':Alsó' kulcsszavak. Hozzon létre egy bash fájlt a következő szkripttel, hogy megtudja, hogyan lehet a kis- és nagybetűket megváltoztatni. Itt az első karakterlánc -adatok nagybetűkké konvertálhatók a használatával '^^' szimbólumot, és a második karakterláncot kisbetűvé alakítja a használatával `tr` parancs. `tr` parancs megkeresi a karakterlánc összes nagybetűjét, és a karaktereket kisbetűvé alakítja át.
eset.sh
#!/bin/bash#Inicializálja az első karakterlánc -adatokat
szöveg1='[email protected]'
#Nyomtassa ki a $ text1 értékét az összes karakter nagybetűsre konvertálásával
kidobta $ {email ^^}
#Inicializálja a második karakterlánc -adatokat
szöveg2= 'Bash programozás alapjai'
#Nyomtassa ki a $ text2 értékét az összes nagybetű kisbetűsre konvertálásával
kidobta $ text2 | NS [:felső:] [:Alsó:]
Kimenet:
Futtassa a szkriptet.
$basheset.shA szkript futtatása után a következő kimenet jelenik meg.
A karakterláncok összehasonlításáról többet tudhat meg innen ezt az oktatóanyagot .
String adatok olvasása a cikluson keresztül
A karakterlánc adatai bármely programozási nyelv karakter tömbjeként működnek. Hogyan ' számára A hurok a bash -ban lévő karakterlánc -adatok olvasásához használható ebben a részben. Hozzon létre egy alapfájlt a következő szkripttel a karakterlánc értékének minden egyes részének olvasásához a ciklus használatával.
readstr.sh
#!/bin/bas# Olvassa el a szöveg minden szavát a ciklus használatával
számáraértékban benBash programozásszámáraa Kezdők
tedd
kidobta $ értékű
Kész
Kimenet:
Futtassa a szkriptet.
$bashreadstr.shA szkript futtatása után a következő kimenet jelenik meg.
Ha többet szeretne tudni a karakterlánc -adatok iterálásáról, használja a hurkot a ezt az oktatóanyagot .
Ugrás a tetejére
Visszaadási kódok visszaadása egy szkriptből, és egy másik szkript befogása
Az egyik bash szkript elkaphatja a visszatérési kódokat egy másik szkriptből a szkript hívásával és használatával '$?' olvasni a visszatérési értéket. Tegyük fel, hogy egy bash fájl először.sh végrehajtás után visszaad egy kódot. Hozzon létre egy másik bash fájlt második.sh és adja hozzá a következő szkriptet a visszatérési érték rögzítéséhez és néhány egyéb feladat elvégzéséhez. Az alábbiakban mindkét fájl kódját adjuk meg. először.sh fájl lesz hívva második.sh fájlt a szkript elején. először.sh visszaad egy kilépési kódot a bemeneti érték alapján. second.sh elkapja a kódot '$?' és hasonlítsa össze az 1 -gyel. Ha mindkét érték egyenlő, akkor kinyomtatódik, A bemeneti szám nagyobb, mint 100 , különben kinyomtatja, A bemeneti szám 100 -nál kisebb vagy egyenlő .
először.sh
#!/bin/bashkidobta 'Adjon meg egy számértéket'
olvasn
# Ellenőrizze, hogy a bemeneti érték 100 -nál kisebb vagy egyenlő -e, vagy sem
ha [[ $ n -az 100 ]]
azután
kijárat 0
más
kijárat 1
lenni
második.sh
#! /bin/bash#Végezze el a fájlt, először.sh
bash 'first.sh'
#Ellenőrizze, hogy a visszatérési kód 1 vagy nem
ha [ $? -eq 1 ]
azután
kidobta 'A bemeneti szám nagyobb, mint 100'
más
kidobta 'A bemeneti szám kisebb vagy egyenlő 100'
lenni
Kimenet:
Futtassa a szkriptet.
$bashmásodik.shA következő kimenet jelenik meg, ha a szkriptet kétszer 55 és 110 futtatja.
Olvasás és írás fájlokba
A fájlok olvasása és írása a bash programozás általános követelményei. A Bash nem rendelkezik olyan beépített funkcióval, mint egy másik nyelv a fájl olvasásához vagy írásához. A fájl bash -ban történő olvasásának több módja is van. A fájlok bash -ban történő olvasásának vagy írásának leggyakoribb módja a használata `macska` parancs. Ez a parancs azonban a fájl teljes tartalmának egyidejű olvasására szolgál. Bármely fájlt soronként is olvashat bármely hurok és `olvasni` parancs. Az átirányító operátor használatával '>' , adatokat írhat a bash bármely fájljába. Ha adatokat szeretne csatolni bármilyen fájlhoz, akkor használnia kell '>>' operátor. Az olvasási és írási fájlműveletek jelen szakasz következő részében láthatók.
Fájl olvasása bash -ban
Hozzon létre egy bash fájlt a következő szkripttel, hogy elolvashassa a ' hardver.txt ’. Ennek a fájlnak a tartalmát az alábbiakban ismertetjük. A szkriptben a fájl teljes tartalma olvasható `macska` parancs első és következő, míg a ciklus a fájl soronkénti olvasására szolgál.
hardver.txt
MonitorBillentyűzet
Egér
Scanner
Nyomtató
readfile.sh
#!/bin/bashkidobta 'Fájl olvasása a cat parancs használatával'
# Olvassa el a fájl tartalmát a 'cat' paranccsal
tartalom=``macskahardver.txt``
kidobta $ tartalom
kidobta 'Fájl olvasása soronként hurok használatával'
# Rendelje hozzá a fájlnevet
fájl név='hardware.txt'
# A fájl minden sorát a ciklus minden iterációja olvassa
míg olvasvonal;
tedd
# nyomtassa ki a sort
kidobta $ sor
Kész<$ fájlnév
Kimenet:
Futtassa a következő parancsokat.
$macskahardver.txt$bashreadfile.sh
Itt az első parancs kinyomtatja a fájl tartalmát, hardver.txt bash szkript futtatása nélkül, a második parancs pedig a readfile.sh és a használatával kétszer nyomtassa ki a fájl tartalmát `macska` parancsot és `olvasni` parancsot a while hurokkal. Ezt meglátogathatja bemutató hogy többet tudjon a fájlok soronkénti olvasásáról.
Fájl írása bash -ban
Hozzon létre egy bash fájlt a következő szkripttel, hogy új tartalmat írjon egy új fájlba, és adatokat fűzzen hozzá.
writefile.sh
#!/bin/bashkidobta 'Írjon be egy szöveget'
#Olvassa el a karakterlánc adatait
olvasstr1
#Adjon hozzá bemeneti adatokat a fájlhoz először
kidobta $ str1 >test.txt
kidobta 'Írjon be más szöveget'
#Olvasson újabb karakterlánc -adatokat
olvasstr2
#Adjon hozzá bemeneti adatokat a fájl végéhez
kidobta $ str2 >>test.txt
#Mutassa meg a fájl teljes tartalmát
kidobta ``macskatest.txt``
Kimenet:
Futtassa a szkriptet.
$bashwritefile.shA szkript futtatása után a következő kimenet jelenik meg.
Csövek
A cső bármely parancs kimenetét más parancsbemenetre irányítja át. Különféle bash parancsok között használható, hogy konkrét kimenetet hozzon létre. A szabványos bemenet csövön keresztül csatlakozik a Linux szabványos kimenetéhez. A kívánt kimenet eléréséhez a parancsot sorba kell állítani a pipe (|) szimbólummal. Két vagy több parancs együtt hajtható végre egyetlen parancsban a pipe használatával. Ugyanazon feladat végrehajtásához több parancsot kell végrehajtania több sorban cső nélkül. Tehát a cső használata nagyon előnyös sokféle feladat rövid elvégzéséhez.
szintaxis:
parancs1|parancs2|...Itt a parancs1 kimenete kerül átadásra a parancs2 bemeneteként.
Ugyanezt a feladatot csővel és cső nélkül is elvégezzük a szakasz következő részében. Tegyük fel, hogy egy szöveges fájl neve marks.txt a következő adatokkal együtt van megadva.
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
Rendeznie kell a fájl adatait, és meg kell találnia és ki kell nyomtatnia a „K” tanulónév összes bejegyzését igen ' . Ezt a feladatot több parancs futtatásával is elvégezheti a következő részben bemutatott cső használata nélkül. A kívánt parancs eléréséhez a következő parancsokat kell futtatni. Az első parancs rendezi a fájlt. A második parancs megkeresi a „K igen ' segítségével ` markolat `parancsolja és tárolja a kimenetet egy temp.txt fájlt. A harmadik parancs számolja az a összes sorát temp.txt fájl használatával 'wc' parancs.
$fajtamarks.txt$markolat 'Keya'marks.txt>temp.txt
$WC -aztemp.txt
Kimenet:
A tanuló két „Keya” bejegyzése létezik az aktában. Tehát a fenti parancsok futtatása után a következő kimenet jelenik meg.
Könnyen egyesítheti a fenti három parancsot, és ugyanazt a kimenetet kaphatja, ha egyetlen parancsot futtat egy csővel, amely a következő parancsban látható. Itt nincs szükség ideiglenes fájlra a kimenet megszerzéséhez. Itt a `kimenete fajta `parancs lesz bemenetként` markolat `parancs és a` kimenete markolat `parancs lesz bemenetként a 'wc' parancs.
$fajtamarks.txt| markolat 'Keya' | WC -azKimenet:
A fenti parancs futtatásával a következő kimenetet kapja, mint az előző parancs kimenetét. A parancs kimenete 2 lesz.
Következtetés:
A bash szkriptnyelv leghasznosabb és szükséges témáit ebben az oktatóanyagban próbáljuk bemutatni. Remélhetőleg az olvasó hasznára válik az oktatóanyag elolvasásának, és hatékonyabban tudja megírni a bash szkriptet.