Danhsách AND (&&)

Một phần của tài liệu LẬP TRÌNH TRONG MÔI TRƯỜNG SHELL (Trang 29 - 30)

Danh shell AND cho phép th c thi m t chu i l nh k nhau, l nh sau ch th c hi n khi l nh tr c đã th c thi và tr v mã l i thành công. Cú pháp s d ng nh sau:

Statement1 && statement2 && statement3 && . . .

B t đ u t bên trái statement1 s th c hi n tr c, n u tr v true thì statement2 ti p t c đ c g i. N u statement2 tr v false thì shell ch m d t danh shell AND ng c l i

statement3 s đ c g i ... Toán t && dùng đ ki m tra k t q a tr v c a statement tr c đó.

K t qu tr v c a AND s là true n u t t c các l nh statement đ u đ c g i th c thi. Ng c l i là false.

Hãy xét ví d sau, dùng l nh touch file_one (đ ki m tra file_one t n t i hay ch a, n u ch a thì t o m i) ti p đ n rm file_two. Sau cùng danh shell AND s ki m tra xem các file có đ ng th i t n t i hay không đ đ a ra thơng báo thích h p.

Ví d 3-14 and_list.sh

#!/bin/sh touch file_one rm -f file_two

if [ -f file_one ] && echo "hello" && [ -f file_two ] && echo "there"

then

echo -e "in if" else

echo -e "in else" fi

exit 0

Clh y th script trên b n s nh n đ c k t q a k t xu t nh sau: $./and_list.sh

hello

in else

Cách ch ng trình làm vi c: L nh touch và rm đ m b o r ng file_one t n t i và file_two khơng có. Trong danh shell bi u th c if, && s g i l nh [-f file_one ] tr c. L nh này thành cơng vì touch đã t o s n file_one. L nh echo ti p t c đ c g i echo luôn tr v tr true nên l nh ti p theo

[-f file_two] thi hành. Do file_two không t n t i nên echo "there" khơng đ c g i. Tồn b bi u th c tr v tr false (vì các l nh trong danh shell không đ c th c thi h t). Do if nh n tr false nên echo trong m nh đ else c a l nh if đ c g i.

30

Một phần của tài liệu LẬP TRÌNH TRONG MÔI TRƯỜNG SHELL (Trang 29 - 30)