TỰ HỌC SỬ DỤNG LINUX - Trang 131

122

Bash

for a in 1 2 3 ; do

touch fu$a

done

Có thể gõ ba dòng này trên một dòng lệnh, kết quả thu được tương tự với

script. Dạng tổng quát của toán tử for như sau:

for

name [ in word; ] do list ; done

Đầu tiên cũng xảy ra sự khai triển từ word theo quy luật khai triển biểu thức
(xem trên). Sau đó biến name lần lượt được gán các giá trị thu được từ sự
khai triền này, và thực hiện danh sách lệnh list trong mỗi lần như vậy. Nếu
không có “in word”, thì danh sách lệnh list được thực hiện một lần cho mỗi
tham biến vị trí

đã đưa ra. Trên Linux có chương trình seq, tiếp nhận hai

số nguyên làm tham số, và đưa ra chuỗi tất cả các số nằm giữa hai số này (cộng
thêm cả chúng). Nhờ câu lệnh này có thể sử dụng for của bash làm việc như
toán tử for trong các ngôn ngữ lập trình thông thường. Để làm được điều này
chỉ cần viết vòng lặp for như sau:

for a in $( seq 1 6 ) ; do

cat fu$a

done

Câu lệnh (script) này đưa ra màn hình nội dung của 10 tập tin (nếu có): “fu1”,

..., “fu10”.

5.8.6

Toán tử while và until

Toán tử while làm việc tương tự như if, nhưng vòng lặp các câu lệnh trong
list2

chỉ thực hiện khi điều kiện còn đúng, và sẽ ngừng khi điều kiện không

thỏa mãn. Cấu trúc có dạng như sau:

while

list1 do list2 done

Ví dụ:

while [ -d directory ] ; do

ls -l directory >> logfile

echo -- SEPARATOR -- >> logfile

sleep 60

done

Chương trình (script) trên sẽ theo dõi và ghi lại nội dung của thư mục directory

theo từng phút nếu thư mục còn tồn tại. Toán tử until tương tự như toán tử
while

:

until

list1 do list2 done

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.