Bash Pou Loop ak Pandan ke Egzanp Loop

Tankou nenpòt lòt langaj scripting, Bash tou gen sipò pou pasan.

Loops yo se gwo pou fè travay repetitif. Nou ka fè pou sèvi ak pou pasan ak pandan y ap pasan nan Scripts Bash nou an.



Bach Pou Loop

Sentaks la nan bouk la se:


for VARIABLE in PARAM1 PARAM2 PARAM3 do // scope of for loop done

Bouk la pou egzekite pou chak paramèt. Paramèt yo ka nimewo, ranje nimewo oswa strings, elatriye.

Bash Pou Egzanp Loop

Egzanp senp sa a simagri nimewo, 1 a 5 lè l sèvi avèk bouk la pou:


#!/bin/bash for i in 1 2 3 4 5 do echo '$i' done

Sòti:

1 2 3 4 5

Bash Pou Loop - Enprime Range nan Resansman

Nou kapab tou defini yon seri de nimewo bouk nan:

Pa egzanp:

for i in {1..5} do echo '$i' done

Sòti:


1 2 3 4 5

Bash Loop Atravè fisèl

Nou kapab tou itilize bouk la pou bouk nan paramèt fisèl:

#!/bin/bash for day in MON TUE WED THU FRI SAT SUN do echo '$day' done

Sòti:

MON TUE WED THU FRI SAT SUN

Bach Pou Loop - C Style

Nou kapab tou itilize yon sentaks C-style yo ekri pou bouk la. Pa egzanp:

#!/bin/bash for ((i=1; i<=5; i++)) do echo '$i' done

Sòti


1 2 3 4 5

Pou Loop ekri ak lèt ​​detache Lis dosye nan Anyè aktyèl la

Nan lis tout dosye yo nan anyè aktyèl la lè l sèvi avèk bach la pou bouk, nou itilize:

#!/bin/bash for fname in ./ do ls -l $fname done

Bash Pandan Loop

Bash tou sipòte pandan y ap pasan. Pandan ke pasan egzekite yon seri enstriksyon jiskaske yon kondisyon evalye vre.

Sentaks la pou Bash pandan bouk la se:

while [condition] do //execute instructions done

Kondisyon an evalye anvan egzekite nenpòt enstriksyon yo. Se poutèt sa, li nesesè gen yon mwayen pou mete ajou kondisyon an, otreman bouk la pral egzekite pou tout tan.


Bash Pandan ke Loop Egzanp

Sa ki anba la a se yon senp pandan y ap bouk ki enprime nimewo 1 a 5. Se bouk la sispann lè nimewo a pi gran pase 5.

#!/bin/bash num=1 while [ $num -le 5 ] do echo '$num' let num++ done

Bash C-Style Pandan ke Loop

Tankou bouk la pou, nou ka ekri tou bash la pandan y ap bouk nan yon C-style tankou lang.

Pa egzanp:

#!/bin/bash num=1 while((num <= 5)) do echo $num let num++ done