<Trước | Nội dung | Tiếp theo>
trường hợp
In bash, lệnh ghép nhiều lựa chọn được gọi là trường hợp. Nó có thuế tổng hợp sau:
trường hợp lời in
[Belt Hold [| Belt Hold] ...) lệnh ;;] ...
nó C
Nếu chúng ta nhìn vào menu đọc chương trình từ Chương 28, chúng tôi thấy logic được sử dụng để hành động trên lựa chọn của người dùng:
#! / bin / bash
# read-menu: chương trình thông tin hệ thống điều khiển menu xóa
tiếng vang "
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 "
read -p "Nhập lựa chọn [0-3]>"
if [[$ REPLY = ~ ^ [0-3] $]]; then if [[$ REPLY == 0]]; sau đó
#! / bin / bash
# read-menu: chương trình thông tin hệ thống điều khiển menu xóa
tiếng vang "
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 "
read -p "Nhập lựa chọn [0-3]>"
if [[$ REPLY = ~ ^ [0-3] $]]; then if [[$ REPLY == 0]]; sau đó
echo "Chương trình đã kết thúc." lối ra
fi
if [[$ REPLY == 1]]; sau đó echo "Tên máy chủ: $ HOSTNAME" thời gian hoạt động
ra
fi
if [[$ REPLY == 2]]; sau đó df -h
ra
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
lối ra fi
fi khác
echo "Mục nhập không hợp lệ." > & 2 lối ra 1
fi
echo "Chương trình đã kết thúc." lối ra
fi
if [[$ REPLY == 1]]; sau đó echo "Tên máy chủ: $ HOSTNAME" thời gian hoạt động
ra
fi
if [[$ REPLY == 2]]; sau đó df -h
ra
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
lối ra fi
fi khác
echo "Mục nhập không hợp lệ." > & 2 lối ra 1
fi
Sử dụng trường hợp, chúng ta có thể thay thế logic này bằng một cái gì đó đơn giản hơn:
#! / bin / bash
# case-menu: chương trình thông tin hệ thống điều khiển menu xóa
tiếng vang "
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 "
read -p "Nhập lựa chọn [0-3]>"
trường hợp $ REPLY trong
0) echo "Chương trình đã kết thúc." lối ra
;;
#! / bin / bash
# case-menu: chương trình thông tin hệ thống điều khiển menu xóa
tiếng vang "
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 "
read -p "Nhập lựa chọn [0-3]>"
trường hợp $ REPLY trong
0) echo "Chương trình đã kết thúc." lối ra
;;
1) thời gian hoạt động của echo "Tên máy chủ: $ HOSTNAME"
;;
2) df -h
;;
3) 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
;;
*) echo "Mục nhập không hợp lệ"> & 2 lối ra 1
;;
nó C
1) thời gian hoạt động của echo "Tên máy chủ: $ HOSTNAME"
;;
2) df -h
;;
3) 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
;;
*) echo "Mục nhập không hợp lệ"> & 2 lối ra 1
;;
nó C
trường hợp lệnh xem xét giá trị của lời, trong ví dụ của chúng tôi, giá trị của ĐÁP LẠI và sau đó cố gắng so khớp nó với một trong những mô hình. Khi một kết quả phù hợp được tìm thấy, lệnh được liên kết với mẫu được chỉ định được thực thi. Sau khi một trận đấu được tìm thấy, không có trận đấu nào khác được cố gắng.
<Trước | Nội dung | Tiếp theo>