CƠ BẢN VỀ LINUX SHELL SCRIPT - Trang 8


VietHung soft group -

[email protected]

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.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.