Cú pháp case

Một phần của tài liệu Lập trình trong môi trường shell unixlinux (Trang 64 - 66)

M nh đ case cho phép so m t m u (chu i ký t ) v i nhi u m u khác nhau và th c hi n đo n mã t ng ng v i m u trùng kh p. Cú pháp c a nó nh sau: bash và pdksh tcsh case mau in mau1) cau_lenh ... ;; switch (mau) case mau1: cau_lenh ... breaksw

65 mau2) cau_lenh ... ;; ... *) cau_lenh ... ;; esac case mau2: cau_lenh ... breaksw ... default: cau_lenh ... breaksw endsw

Trong đó, mau đ c so sánh l n l t v i các m u mau1, mau2... N u có m t m u trùng kh p thì (các) câu l nh t ng ng s đ c th c hi n cho đ n khi g p hai d u ch m ph y (;;) (bash và pdksh) ho c breaksw (tcsh). N u không có m u nào trùng kh p thì (các) câu l nh trong kh i * (bash và pdksh) ho c default (tcsh) đ c th c hi n.

b. Ví d

o n ch ng trình sau đ c vi t cho bash ho c pdksh. Nó ki m tra xem tu ch n dòng l nh đ u tiên (l u trong bi n $1) có ph i là –i ho c –e không. N u là –i thì s in ra s dòng trong t p xác đnh b i tu ch n dòng l nh th hai (bi n $2) b t đ u b ng ch cái i. Còn n u là –e thì s in ra s dòng trong t p xác đ nh b i tu ch n dòng l nh th hai b t đ u b ng ch cái e. N u tu ch n đ u tiên không ph i là –i

ho c –e thì in ra màn hình thông báo.

case $1 in -i)

count=`grep ^i $2 | wc –l`

echo "So dong trong $2 bat dau bang chu cai i la $count" ;;

-e)

count=`grep ^e $2 | wc –l`

echo "So dong trong $2 bat dau bang chu cai e la $count" ;;

*)

echo "Tuy chon khong hop le"

echo "Cach dung: $0 [-i|-e] t pname" ;;

esac

Và sau đây là đo n mã t ng t cho tcsh : #

switch ($i) case –i | i:

66

echo "So dong trong $2 bat dau bang chu cai i la $count" breaksw

case –e | e:

set count=`grep ^e $2 | wc –l`

echo "So dong trong $2 bat dau bang chu cai e la $count" breaksw

default:

echo "Tuy chon khong hop le"

echo "Cach dung: $0 [-i|-e] t pname" breaksw

endsw

7.5 Các m nh đ vòng l p

Ngôn ng shell c ng cung c p các m nh đ vòng l p. Vòng l p hay đ c s d ng nh t là vòng l p for. Ngoài ra còn có các lo i vòng l p while, until.

7.5.1 M nh đ for

M nh đ for th c hi n các câu l nh trong vòng l p v i m t s l n nh t đnh. Nó có các d ng sau: (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Lập trình trong môi trường shell unixlinux (Trang 64 - 66)