<Trước | Nội dung | Tiếp theo>
Chuyển đổi trường hợp
Các phiên bản gần đây của bash có hỗ trợ chuyển đổi chữ hoa/chữ thường của chuỗi. bash
có bốn phần mở rộng tham số và hai tùy chọn cho khai lệnh để hỗ trợ nó.
Vậy chuyển đổi trường hợp có ích lợi gì? Ngoài giá trị thẩm mỹ rõ ràng, nó còn có vai trò quan trọng trong lập trình. Hãy xem xét trường hợp tra cứu cơ sở dữ liệu. Hãy tưởng tượng người dùng đã nhập một chuỗi vào trường nhập dữ liệu mà chúng ta muốn tra cứu trong cơ sở dữ liệu. Có thể người dùng sẽ nhập giá trị bằng tất cả chữ hoa hoặc chữ thường hoặc kết hợp cả hai. Chúng tôi chắc chắn không muốn đưa vào cơ sở dữ liệu của mình mọi hoán vị có thể có của cách viết chữ hoa và chữ thường. Phải làm gì?
Một cách tiếp cận phổ biến cho vấn đề này là bình thường hóa đầu vào của người dùng. Tức là chuyển đổi nó
thành một dạng chuẩn hóa trước khi chúng ta thử tra cứu cơ sở dữ liệu. Chúng ta có thể làm điều này bằng cách chuyển đổi tất cả các ký tự trong dữ liệu đầu vào của người dùng thành chữ thường hoặc chữ hoa và đảm bảo rằng các mục cơ sở dữ liệu được chuẩn hóa theo cùng một cách.
khai lệnh có thể được sử dụng để chuẩn hóa chuỗi thành chữ hoa hoặc chữ thường. sử dụng khai, chúng ta có thể buộc một biến luôn chứa định dạng mong muốn bất kể nó được gán gì:
#! / bin / bash
# ul-khai báo: chứng minh chuyển đổi kiểu chữ thông qua khai báo -u trên
khai báo -l thấp hơn
nếu [[$1]]; sau đó
top="$1" low="$1" echo $upper echo $low
fi
#! / bin / bash
# ul-khai báo: chứng minh chuyển đổi kiểu chữ thông qua khai báo -u trên
khai báo -l thấp hơn
nếu [[$1]]; sau đó
top="$1" low="$1" echo $upper echo $low
fi
Trong đoạn script trên, chúng tôi sử dụng khai để tạo hai biến, phía trên và thấp hơn. Chúng tôi gán giá trị của đối số dòng lệnh đầu tiên (tham số vị trí 1) cho từng biến và sau đó hiển thị chúng trên màn hình:
[tôi @ linuxbox ~] $ ul-khai báo aBc
ABC
abc
[tôi @ linuxbox ~] $ ul-khai báo aBc
ABC
abc
Như chúng ta có thể thấy, đối số dòng lệnh ("aBc") đã được chuẩn hóa.
Ngoài khai, có bốn phần mở rộng tham số thực hiện chuyển đổi chữ hoa/chữ thường:
Bảng 34-1: Mở rộng tham số chuyển đổi trường hợp
Định dạng kết quả
Định dạng kết quả
${tham số,,} Mở rộng giá trị của tham số thành tất cả chữ thường.
${tham số,} Mở rộng giá trị của tham số chỉ thay đổi cái đầu tiên
ký tự sang chữ thường.
${tham số^^} Mở rộng giá trị của tham số thành tất cả các chữ in hoa.
${tham số^} Mở rộng giá trị của tham số chỉ thay đổi cái đầu tiên
ký tự sang chữ hoa (viết hoa).
Đây là một kịch bản thể hiện những mở rộng này:
#! / bin / bash
# ul-param: chứng minh việc chuyển đổi trường hợp thông qua việc mở rộng tham số if [[ $1 ]]; sau đó
tiếng vang ${1,,}
tiếng vang ${1,} tiếng vang ${1^} tiếng vang ${1^}
fi
#! / bin / bash
# ul-param: chứng minh việc chuyển đổi trường hợp thông qua việc mở rộng tham số if [[ $1 ]]; sau đó
tiếng vang ${1,,}
tiếng vang ${1,} tiếng vang ${1^} tiếng vang ${1^}
fi
Đây là kịch bản đang hoạt động:
[tôi @ linuxbox ~] $ ul-param aBc
abc aBc ABC
ABc
[tôi @ linuxbox ~] $ ul-param aBc
abc aBc ABC
ABc
Một lần nữa, chúng ta xử lý đối số dòng lệnh đầu tiên và đưa ra bốn biến thể được hỗ trợ bởi phần mở rộng tham số. Trong khi tập lệnh này sử dụng tham số vị trí đầu tiên, tham số có thể là bất kỳ chuỗi, biến hoặc biểu thức chuỗi nào.
<Trước | Nội dung | Tiếp theo>