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>

Thoát ra khỏi vòng lặp

bash cung cấp hai lệnh nội trang có thể được sử dụng để điều khiển luồng chương trình bên trong các vòng lặp. Lệnh break ngay lập tức kết thúc một vòng lặp và điều khiển chương trình kết thúc bằng câu lệnh tiếp theo sau vòng lặp. Lệnh tiếp tục làm cho phần còn lại của vòng lặp bị bỏ qua và điều khiển chương trình tiếp tục với lần lặp tiếp theo của vòng lặp. Ở đây, chúng tôi thấy một phiên bản của chương trình menu trong khi kết hợp cả ngắt và tiếp tục:


#! / bin / bash


# while-menu2: chương trình thông tin hệ thống điều khiển menu DELAY = 3 # Số giây để hiển thị kết quả

trong khi đúng; làm

trong sáng

con mèo << - _EOF_

Xin hãy lựa chọn:


1. Thông tin hệ thống hiển thị

2. Hiển thị dung lượng đĩa

3. Hiển thị Sử dụng Không gian Nhà

0. Thoát


_EOF_

read -p "Nhập lựa chọn [0-3]>"


if [[$ REPLY = ~ ^ [0-3] $]]; then if [[$ REPLY == 1]]; sau đó

echo "Tên máy chủ: $ HOSTNAME"

ngủ $ DELAY

tiếp tục

fi

if [[$ REPLY == 2]]; sau đó df -h

ngủ $ DELAY

tiếp tục

fi

if [[$ REPLY == 3]]; sau đó

if [[$ (id -u) -eq 0]]; sau đó

echo "Sử dụng không gian gia đình (Tất cả người dùng)" du -sh / home / *

khác

#! / bin / bash


# while-menu2: chương trình thông tin hệ thống điều khiển menu DELAY = 3 # Số giây để hiển thị kết quả

trong khi đúng; làm

trong sáng

con mèo << - _EOF_

Xin hãy lựa chọn:


1. Thông tin hệ thống hiển thị

2. Hiển thị dung lượng đĩa

3. Hiển thị Sử dụng Không gian Nhà

0. Thoát


_EOF_

read -p "Nhập lựa chọn [0-3]>"


if [[$ REPLY = ~ ^ [0-3] $]]; then if [[$ REPLY == 1]]; sau đó

echo "Tên máy chủ: $ HOSTNAME"

ngủ $ DELAY

tiếp tục

fi

if [[$ REPLY == 2]]; sau đó df -h

ngủ $ DELAY

tiếp tục

fi

if [[$ REPLY == 3]]; sau đó

if [[$ (id -u) -eq 0]]; sau đó

echo "Sử dụng không gian gia đình (Tất cả người dùng)" du -sh / home / *

khác


echo "Sử dụng không gian tại nhà ($ USER)" du -sh $ HOME

fi

ngủ $ DELAY

tiếp tục

fi

nếu [[$ REPLY == 0]]; sau đó phá vỡ

fi

khác

echo "Mục nhập không hợp lệ." ngủ $ DELAY

xong rồi

echo "Chương trình đã kết thúc."

echo "Sử dụng không gian tại nhà ($ USER)" du -sh $ HOME

fi

ngủ $ DELAY

tiếp tục

fi

nếu [[$ REPLY == 0]]; sau đó phá vỡ

fi

khác

echo "Mục nhập không hợp lệ." ngủ $ DELAY

xong rồi

echo "Chương trình đã kết thúc."


Trong phiên bản này của tập lệnh, chúng tôi thiết lập một vòng lặp vô tận (một thứ không bao giờ tự kết thúc) bằng cách sử dụng đúng lệnh cung cấp trạng thái thoát cho trong khi. Kể từ đúng sẽ luôn thoát với trạng thái thoát bằng XNUMX, vòng lặp sẽ không bao giờ kết thúc. Đây là một kỹ thuật viết kịch bản đặc biệt đáng ngạc nhiên. Vì vòng lặp sẽ không bao giờ tự kết thúc, chương trình phải cung cấp một số cách để thoát ra khỏi vòng lặp khi đến thời điểm thích hợp. Trong tập lệnh này, phá vỡ lệnh được sử dụng để thoát khỏi vòng lặp khi lựa chọn “0” được chọn. Các tiếp tục lệnh đã được bao gồm ở cuối các lựa chọn tập lệnh khác để cho phép thực thi hiệu quả hơn. Bằng cách sử dụng tiếp tục, tập lệnh sẽ bỏ qua mã không cần thiết khi một lựa chọn được xác định. Ví dụ: nếu lựa chọn “1” được chọn và xác định, không có lý do gì để kiểm tra các lựa chọn khác.


 

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