OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

Đọc tệp với vòng lặp

trong khi và cho đến khi có thể xử lý đầu vào tiêu chuẩn. Điều này cho phép các tệp được xử lý với các vòng lặp while và cho đến khi. Trong ví dụ sau, chúng tôi sẽ hiển thị nội dung của tệp dis- tros.txt được sử dụng trong các chương trước:


#! / bin / bash

# while-read: đọc các dòng từ tệp trong khi đọc bản phát hành phiên bản distro; làm

printf "Distro:% s \ tVersion:% s \ tReleased:% s \ n" \

$ distro \

$ phiên bản \

$ phát hành xong <distros.txt

#! / bin / bash

# while-read: đọc các dòng từ tệp trong khi đọc bản phát hành phiên bản distro; làm

printf "Distro:% s \ tVersion:% s \ tReleased:% s \ n" \

$ distro \

$ phiên bản \

$ phát hành xong <distros.txt


Để chuyển hướng một tệp đến vòng lặp, chúng tôi đặt toán tử chuyển hướng sau thực hiện tuyên bố. Vòng lặp sẽ sử dụng đọc để nhập các trường từ tệp được chuyển hướng. Các đọc lệnh sẽ thoát sau khi mỗi dòng được đọc, với trạng thái không thoát cho đến khi đạt đến phần cuối của tệp. Tại thời điểm đó, nó sẽ thoát với trạng thái thoát khác XNUMX, do đó kết thúc vòng lặp. Cũng có thể ghép đầu vào tiêu chuẩn vào một vòng lặp:



#! / bin / bash


# while-read2: đọc các dòng từ tệp

sắp xếp -k 1,1 -k 2n distros.txt | trong khi đọc bản phát hành phiên bản distro; do printf "Distro:% s \ tVersion:% s \ tReleased:% s \ n" \

$ distro \

$ phiên bản \

$ phát hành

thực hiện

#! / bin / bash


# while-read2: đọc các dòng từ tệp

sắp xếp -k 1,1 -k 2n distros.txt | trong khi đọc bản phát hành phiên bản distro; do printf "Distro:% s \ tVersion:% s \ tReleased:% s \ n" \

$ distro \

$ phiên bản \

$ phát hành

thực hiện


Ở đây chúng tôi lấy đầu ra của loại lệnh và hiển thị dòng văn bản. Tuy nhiên, điều quan trọng cần nhớ là vì một đường ống sẽ thực hiện vòng lặp trong một vỏ con, bất kỳ biến thể nào được tạo hoặc gán trong vòng lặp sẽ bị mất khi vòng lặp kết thúc.


Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: