VietHung soft group -
word=
"abcde"
#
khëi
t¹o
mét
x©u
dem
=
0
#
khëi
t¹o
biÕn
count
for letter in $word # vßng lÆp víi biÕn letter
do #
lÖnh
b¾t
®Çu
vßng
lÆp
count=`expr $count + 1` # t¨ng biÕn count lªn 1
echo "Letter $count is [$letter]" # in ra biÕn letter
done #
lÖnh
kÕt
thóc
vßng
lÆp
Cã thÓ gi¶i thÝch nh− sau: víi mçi letter trong word th× thùc hiÖn nh÷ng lÖnh n»m trong do-
done, trong vÝ dô trªn bao gåm t¨ng biÕn count vµ in biÕn letter ra mµn h×nh.
Chó ý: Trong vÝ dô trªn cã dïng lÖnh expr ®Ó gäi lÖnh thùc hiÖn tÝnh to¸n cña hÖ thèng tÝnh
phÐp céng tr−íc khi g¸n vµo biÕn count.
6.2 CÊu tróc vßng lÆp: while
CÊu tróc cña vßng lÆp while ®−îc thÓ hiÖn nh− sau:
while [ <®iÒu kiÖn> ]
do
<c¸c
lÖnh>
done
VÝ dô 6: VÝ dô vÒ vßng lÆp while.
#!/bin/sh
#Vi du 6
word=
"abcde"
#
khëi
t¹o
mét
x©u
dem
=
0
#
khëi
t¹o
biÕn
count
while [ $count –lt 5 ] # vßng lÆp víi biÕn letter
do #
lÖnh
b¾t
®Çu
vßng
lÆp
count=`expr $count + 1` # t¨ng biÕn count lªn 1
echo "Letter $count is [$letter]" # in ra biÕn letter
done #
lÖnh
kÕt
thóc
vßng
lÆp
C¸c b¹n cã thÓ thÊy ngay cÊu tróc hai vßng lÆp trªn gÇn hoµn toµn gièng nhau, chØ kh¸c
dßng for/while. Trong vÝ dô trªn, $count -lt 5 ®−îc coi lµ ®iÒu kiÖn cña vßng lÆp. PhÐp so
s¸nh “-lt” lµ phÐp so s¸nh “nhá h¬n hoÆc b»ng” (less-than) trong lÖnh test cña Unix/Linux.
LÖnh kiÓm tra ®iÒu kiÖn trªn sÏ tr¶ ra gi¸ ®óng (1) trÞ hoÆc sai (0) ®Ó thùc hiÖn tiÕp hay tho¸t
khái vßng lÆp.
Ngoµi phÐp so s¸nh “-lt" cßn cã -gt-lín h¬n, -eq-b»ng, -ne-kh«ng b»ng. Trong phÇn phô
lôc chóng t«i cã liÖt kª l¹i c¸c lÖnh, tham sè vµ phÐp to¸n cña shell, c¸c b¹n cã thÓ ®äc ®Ó biÕt
thªm c¸c phÐp to¸n kh¸c.