Search Suggest

Shell - Loop Control

The infinite Loop (Vòng lặp không xác định)
Là vòng lặp mà điều kiện - condition của vòng lặp luôn đúng, dẫn đến việc không bào giờ thoát ra khỏi vòng lặp, muốn nó thoát ra được vòng lặp thì shell cũng cung cấp hai Loop Control tương tự như trong C là breakcontinue.

Ex (infinite loop):
 #!/bin/sh  

a=10

while [ $a -ge 10 ] # a >= 10
do
echo $a
a=`expr $a + 1` # a = a + 1
done

1. The break statement
Syntax:
 break  
or
 break n  
Với n là vòng lặp lồng nhau thứ n.

Ex1 (break):
 #!/bin/sh  

a=0

while [ $a -lt 10 ]
do
echo $a
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done

 $./test.sh  
0
1
2
3
4
5

Ex1 (break n):
 #!/bin/sh  

for var1 in 1 2 3
do
for var2 in 0 5
do
if [ $var1 -eq 2 -a $var2 -eq 0 ]
then
break 2
else
echo "$var1 $var2"
fi
done
done

 $./test.sh  
1 0
1 5

2. The continue statement
Syntax:
 continue  
or
 continue n  
Với n là vòng lặp lồng nhau thứ n.

Ex:
 #!/bin/sh  

NUMS="1 2 3 4 5 6 7"

for NUM in $NUMS
do
Q=`expr $NUM % 2`
if [ $Q -eq 0 ]
then
echo "Number is an even number!!"
continue
fi
echo "Found odd number"
done

 $./test.sh  
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number


إرسال تعليق