10 klassz és félelmetes Bash Loop példa

10 Klassz Es Felelmetes Bash Loop Pelda



A programozási nyelvben főként háromféle ciklus létezik (for, while és amíg). Mindhárom típusú hurok különböző szempontból fontos. Nincs sok különbség a while és a till ciklus között, de a for ciklus egészen másképp működik, mint ez a kettő. Ezért használhatja ezeket a ciklusokat interaktív szkriptek létrehozására bash felhasználóként.

Tehát a bash-példák tanulása segíthet fejleszteni készségeit a szkriptek létrehozásában. Tehát ebben az oktatóanyagban 10 remek és fantasztikus bash loop példát fogunk tartalmazni, amellyel fejlesztheti szkriptelési készségeit.







10 klassz és félelmetes Bash Loop példa

Ebben a részben különféle példákat és a ciklusokban alkalmazott megközelítéseket ismertetjük.



Seq Command ciklussal Bashban

A for ciklusban a seq paranccsal létrehozhatja a számsorozatot. Például van egy „File.sh” bash szkript, amely a következő kódot tartalmazza:



#!/bin/bash
számára A ban ben $ ( köv 5 két 25 )
csináld
visszhang 'számai $A vannak'
Kész





A terminálban a szkript végrehajtása után a következő eredményt kapja:

. / file.sh




Fájlok átnevezése Loop használatával

Bash szkript használatával a for ciklusokkal több fájlt is átnevezhet. Például több .txt fájlja van, és az aktuális dátumot szeretné hozzáadni a névhez. Tehát itt van a használható példaszkript:

#!/bin/bash
számára A ban ben $ ( ls * .txt ) ; csináld
mv $A ( alapnév $A .txt ) _$ ( dátum % d % m % ) .txt
Kész


Most már futtathatja a szkriptet, amely megváltoztatja az összes .txt fájl nevét az aktuális dátum hozzáadásával:

. / MyFile.sh



Hasonlóképpen, egyetlen szkripten keresztül módosíthatja a fájl kiterjesztését. Változtassuk tehát a .txt kiterjesztést .sh-re a következő szkript segítségével:

#!/bin/bash
számára fájlt ban ben * .txt; csináld
mv -- ' $fájl ' '{fájl%.txt}.sh'
Kész

Miután végrehajtotta a parancsfájlt a terminálban, a .sh fájlokat fogja kapni .txt helyett:

. / MyFile.sh


Infinite For Loop Bashban

Ha a ciklusban nincs definiálva befejezési feltétel, azt végtelen ciklusnak nevezzük. Ebben a Bash ciklus példájában a végtelen for ciklust nézzük meg a bashban. A következő végtelen for ciklust kettős pontosvessző ( ; ; ) határozza meg, és nem tartalmaz kezdő-, művelet- vagy befejező részt.

Az alábbi szkript addig folytatódik, amíg meg nem nyomja a Ctrl+C billentyűkombinációt, vagy beírja a „quit” bevitelt. Ez a szkript minden bemenetként megadott számot kinyomtat 10 és 50 között. Ellenkező esetben a következőt írja ki: „A szám a tartományon kívül van”.

#!/bin/bash
#végtelen hurok
számára ( ( ; ; ) )
csináld
visszhang 'Írjon be egy számot 10 és 50 között'
olvas n
ha [ $n == 'Kilépés' ]
akkor
visszhang 'megszűnt'
kijárat 0
lenni
ha ( ( $n < 10 || $n > ötven ) )
akkor
visszhang 'A szám tartományon kívül van'
más
visszhang 'A szám az $n '
lenni
Kész

45 és 23 érvényes bemenetet adtunk meg a fenti szkripten. Ezt követően bemenetként 2-t nyomtatunk, amely azt jelzi a kimenetben, hogy „a szám a tartományon kívül van”. Ezt követően a szkript bezárásához beírjuk a quit bemenetet. Itt a Ctrl+C lenyomásával is kiléphet a végtelen ciklusból.

Három kifejezési ciklus a Bashban

A három kifejezésből álló ciklus nevéből ismert, hogy három kifejezést tartalmaz, amelyeket vezérlőkifejezéseknek is neveznek. Az első kifejezés (EXP1) az inicializáló, a második kifejezés (EXP2) a ciklusteszt vagy feltétel, a harmadik kifejezés (EXP3) pedig a számláló kifejezés/lépés. Futtassunk egy háromkifejezéses ciklust a bash-ban:

#!/bin/bash
számára ( ( n = 5 ; n > = 1 ; n-- ) )
csináld
visszhang 'Könyv $n '
Kész

A fenti szkript futtatásakor a következő kimenetet kapja.

Hurok többféle feltétellel

A következő bash ciklus példában a till ciklust több feltétellel használjuk. Ebben a szkriptben „m” és „n” két változót vettünk, amelyek értéke 20, illetve 10, és megtartottuk a 15-ös határt. Itt az „m” és „n” feltételeket összeraktuk a ciklusban, amelyben a hurok addig fut, amíg az „m” értéke kisebb, mint a határérték, „n” pedig nagyobb, mint a határérték.

#!/bin/bash
határ = tizenöt
m = húsz
n = 10
amíg [ [ millió dollár -lt $limit || $n -gt $limit ] ] ;
csináld
visszhang 'Ha M = millió dollár akkor N = $n '
( ( m-- ) )
( ( n++ ) )
Kész

Látható, hogy a fenti szkript futtatása addig fut, amíg az „m” és az „n” értéke azonos szintre nem kerül.

Olvassa el a fájlt Bashban

A bash-ban többféleképpen is elolvashatja a fájl tartalmát. Ebben a bash ciklus példájában a fájl tartalmát a fájlnéven keresztül olvassuk be. A következő szkriptet használhatjuk a fájl bash-ban történő olvasásához:

#!/bin/bash
visszhang 'A beírt fájl tartalma:'
míg
olvas vonal
csináld
visszhang $sor
Kész < ~ Dokumentumok / Linuxhint.txt

A fenti szkript futtatása után a beírt fájl teljes tartalmát elolvashatja.

Fájlba írás

A parancsfájl ciklusai segítségével közvetlenül a terminálból szerkeszthet egy fájlt. Például, ha van egy „Példa.txt” txt fájlunk, és szeretnénk összeadni néhány információt, akkor a következő szkriptet használhatjuk:


Ha futtatja a fenti szkriptet, a rendszer kéri a részletek megadását:


A részletek megadása után nyomja meg a CTRL + D billentyűkombinációt a fájl mentéséhez, a CTRL + Z billentyűkombinációt pedig a folyamat sikeres befejezéséhez.

Az utasításhurok megszakítása és folytatása a Bashban

Bash-ban a szünet után folytathatja a ciklusutasítást. A break utasítás kilép a ciklusból, majd átadja a vezérlést a következő megadott utasításnak. A kettes számú iteráció azután kezdődik, hogy az aktuális iterációt kihagyjuk ugyanazzal a folytatási utasítással.

#!/bin/bash
az egyiken = 16
amíg hamis
csináld
( ( az egyiken-- ) )
ha [ [ $szám -eq 13 ] ]
akkor
folytatni
elif [ [ $szám - az 4 ] ]
akkor
szünet
lenni
visszhang 'LinuxHint= $szám '
Kész

A következő bash szkriptben láthatja, hogy ha a „szám” 13, akkor kihagyja a huroktörzs többi részét, és a következő iterációra ugrik. Hasonlóképpen, a hurok megszakad, ha a „szám” kisebb vagy egyenlő, mint 4.


A fenti szkript azt mutatja, hogy a ciklus 15-nél kezdődik, 13-nál szakad, és 5-ig folytatódik.

Átlag kiszámítása bashban

Az átlagot úgy számíthatja ki, hogy a szkriptet bash ciklusban futtatja. Ebben a felhasználó kiszámíthatja egy meghatározott tartományon belüli számok átlagát. A következő szkript kiszámítja a felhasználó által megadott bemenet átlagát.

#!/bin/bash
jelek = '0'
ÁTLAGOS = '0'
ÖSSZEG = '500'
AZ EGYEN = '5'
míg igaz ; csináld
visszhang -n 'Írja be a jeleit, vagy nyomja meg a q gombot a megszakításhoz' ; olvas jelek;
ha ( ( ' $márka ' < '0' ) ) || ( ( ' $márka ' > '100' ) ) ; akkor
visszhang 'Kérem, adja meg a jegyeit'
elif [ ' $márka ' == 'q' ] ; akkor
visszhang 'Az átlagpontok a következők: ÁTLAGOS $ %'
szünet
más
ÖSSZEG =$ [ SUM $ + $márka ]
AZ EGYEN =$ [ $NUM + 1 ]
ÁTLAGOS =$ [ SUM $ / $NUM ]
lenni
Kész

Ha a bevitel nem a tartományon belül van, a rendszer egy üzenetet nyomtat, amely szerint „Kérem, adja meg jelöléseit”. Amikor a felhasználó az összes jel beírása után megnyomja a „q” gombot, a szkript kiszámítja az összes beírt szám hozzávetőleges átlagát.

Amikor a fenti szkript fut, a kimenet valami ilyesmi lesz.

Olvassa el a Bash parancssori argumentumait

A bash-ban egyetlen parancssori argumentum is olvasható ciklusok segítségével. A szkript kiírja a formázott argumentumértékeket. A parancssori argumentumokat bash-ban futtatjuk egy while ciklus használatával a következő szkriptben. Ezen keresztül egyetlen paranccsal kinyomtatja az argumentum value valid opciót átadó értéket.

#!/bin/bash
míg getopts N:F:M: OPT
csináld
ügy ' ${OPT} '
ban ben
N ) név = ${OPTARG} ;;
F ) Apa neve = ${OPTARG} ;;
M ) anyja neve = ${OPTARG} ;;
* ) visszhang 'Érvénytelen'
kijárat 1 ;;
esac
Kész
printf 'Név: $név \n Apa neve: $apanév \n Anyja neve: $anyanév \n '

Így kinyomtathatja a formázott argumentumértékeket a kimenetre, ha a fenti szkriptet bash-ban futtatja.

Becsomagolás

Tehát ez volt a rövid információ a 10 klassz és félelmetes bash loop példáról, amelyeket megtanulhat. Különféle hurkokat használtunk az interaktív szkript egyszerű létrehozásához. Ezen túlmenően a fenti példákban használt alapvető megközelítéseket is elmagyaráztuk. Ha részletesebb információi vannak a bash ciklusairól, kérjük, látogasson el hivatalos weboldalunkra, hogy többet megtudjon.