Toán tử for

Một phần của tài liệu Giáo an Bài giảng: Công nghệ thông tin về cài đặt HDH Linux và windows trên cùng một máy tính (Trang 45 - 46)

40 Bash • /usr/ucb/edit

3.8.5Toán tử for

Toán tử f o r làm việc có khác một chút so với f o r trong các ngôn ngữ lập trình thông thường. Thay vì tăng hoặc giảm giá trị của một biến số nào đó (lên hoặc xuống) một đơn vị sau mỗi vòng lặp, thì nó gán giá trị tiếp theo trong d a n h s á c h t ừ đ ứ a s ẵ n cho biến đó trong mỗi vòng lặp. Nói chung cấu trúc có dạng sau:

f o r name i n words do list do ne

Quy luật xây dựng danh sách lệnh ( l i s t ) giống trong toán tử i f . Ví dụ. Script sau tạo các tập tin f u l , fu 2 , và fu 3 :

--- kênh giao tác --- 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ử f o r 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 l i s t trong mỗi lần như vậy. Nếu không có " in w ord", thì danh sách lệnh l i s t được thực hiện một lần cho mỗi th a m b i ế n v ị t r i đã đưa ra. Trên Linux có chương trình s e q , 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 f o r của bash làm việc như toán tử f o r trong các ngôn ngữ lập trình thông thường. Để làm được điều này chi cần viết vòng lặp f o r như sau:

--- kênh giao tác --- f o r a in $( se q 1 6 ) ; do

cat fu$a done

48 Bash

Một phần của tài liệu Giáo an Bài giảng: Công nghệ thông tin về cài đặt HDH Linux và windows trên cùng một máy tính (Trang 45 - 46)