Bash vzporedna opravila z uporabo zanke For

Bash Vzporedna Opravila Z Uporabo Zanke For



V Linuxu obstaja veliko načinov za vzporedno izvajanje več ukazov ali skriptov Bash. Eden od načinov je uporaba zanke »za« v skriptu Bash za izvajanje vzporednega opravila. Ta zanka je zelo uporabna za izvajanje vzporednih opravil z uporabo ukaza »seq«. V tej vadnici so prikazani različni načini izvajanja vzporednih opravil z uporabo zanke »za«.

Različni primeri vzporednih del

V tem delu vadnice so prikazani različni načini izvajanja vzporednih opravil z uporabo zanke »for«.

Primer 1: Zaženite vzporedna opravila z uporabo zanke »Za«.

Uporaba zanke »za« je enostavnejši način za izvajanje vzporednih opravil v skriptu Bash. Ustvarite datoteko Bash z naslednjim skriptom, ki 10000-krat zažene zanko »for« in natisne številko po 1000-kratni ponovitvi. Ta naloga se izvaja vzporedno z uporabo zanke 'za'.







#!/bin/bash

#Ponavljaj zanko, dokler ne doseže 10000

za val v ` nasl 0 1000 10000 ` ;

narediti

#Natisni vsako 1000. številko

odmev $val

Končano

Po izvedbi skripta se prikaže naslednji rezultat. V izhodu je natisnjenih 10 števil med 0 in 10000:



  p3



Primer 2: Zaženite vzporedna opravila z uporabo ugnezdene zanke »Za«.

Ustvarite datoteko Bash z naslednjim skriptom, ki izvaja ugnezdeno zanko »for«, ki generira serijsko številko z uporabo abecednih znakov od »A« do »C« in številk od 1 do 3. V prvi ponovitvi zunanje zanke in po dokončanje ponovitve notranje zanke, “A1. CodeIgniter«, »A2. Laravel« in »A3. CakePHP« so natisnjeni. V drugi ponovitvi zunanje zanke in po zaključku ponovitve notranje zanke se »B1. Oracle', 'B2. MySQL« in »B3. SQL« so natisnjeni. V tretji ponovitvi zunanje zanke in po zaključku ponovitve notranje zanke se »C1. CSS«, »C2. JQuery« in »C3. JavaScript« so natisnjeni.





#Zunanja zanka

za alfa v { A..C }

narediti

#Notranja zanka

za število v { 1 .. 3 }

narediti

#Natisnite izhod glede na stanje

če [ $alfa == 'A' ] ; potem

arrayList = ( 'CodeIgniter' 'Laravel' 'CakePHP' )

elif [ $alfa == 'B' ] ; potem

arrayList = ( 'Oracle' 'MySQL' 'SQL' )

elif [ $alfa == 'C' ] ; potem

arrayList = ( 'CSS' 'JQuery' 'JavaScript' )

biti

odmev ' $alfa $število . ${arrayList[$number-1]} '

Končano

Končano

Po izvedbi skripta se prikaže naslednji rezultat:



Primer 3: Zagon vzporednih opravil z uporabo zanke »Za« in ukaza »Počakaj«

Ukaz »počakaj« je zelo uporaben ukaz Bash, ki se uporablja za čakanje, da eno opravilo dokonča nalogo, ko se izvaja več opravil. Če se izvaja manj opravil, ukaz »wait« zažene novo opravilo asinhrono. Ustvarite datoteko Bash z naslednjim skriptom, ki zažene opravilo v ozadju znotraj ugnezdene zanke »za«. Ukaz »počakaj« se uporablja za čakanje na dokončanje vseh podrejenih procesov. Ukaza »datum« in »spanje« se izvajata kot proces v ozadju.

#Zunanja zanka

za jaz v { 1 .. 2 }

narediti

#Notranja zanka

za j v { 1 .. 3 }

narediti

če test ' $(delovna mesta | wc -l) ' -ge 2 ; potem

čakati -n

biti

#Proces v ozadju

{

datum

spati 1

} &

Končano

Končano

Po izvedbi skripta se prikaže naslednji rezultat. Trenutni datum in ura sta 6-krat natisnjena iz procesa v ozadju, da se ponovijo ugnezdene zanke »za« 2×3=6-krat:

Primer 4: Razlike med zaporednimi in vzporednimi teki

Ustvarite datoteko Bash z naslednjim skriptom, ki prikazuje razlike med zaporednim in vzporednim izvajanjem. Funkcija prn_char() je definirana v skriptu za tiskanje petih znakov s trajanjem 0,5 sekunde. Nato se prva zanka »za« uporabi za zaporedno izvajanje funkcije prn_char(). Druga zanka 'for' se uporablja za vzporedno izvajanje funkcije prn_char().

#Določite funkcijo za tiskanje 5 znakov s trajanjem 0,5 sekunde

prn_char ( ) {

za c v zdravo; narediti

spati 0,5 ;

odmev -n $c ;

Končano

odmev

}

#Zaženite funkcijo zaporedno z uporabo zanke for

za ven v { 1 .. 3 } ; narediti

prn_char ' $ven '

Končano

#Vzporedno zaženite funkcijo z uporabo zanke for

za ven v { 1 .. 3 } ; narediti

prn_char ' $ven ' &

Končano


Po izvedbi skripta se prikaže naslednji rezultat. Razlika med zaporednim in vzporednim tekom je prikazana v izhodu. Tukaj so vsi znaki zanke »za« funkcije prn_char() natisnjeni hkrati v zaporednem izvajanju in vsak znak je natisnjen trikrat v vzporednem izvajanju:

  p4

Zaključek

Izvajanje vzporednih opravil z uporabo zanke 'za' je potrebno za številne namene programiranja. Metode izvajanja vzporednih opravil z uporabo zanke »za« so prikazane v tej vadnici.