Cách so sánh các chuỗi trong Bash

How Compare Strings Bash



Đối với các mục đích lập trình khác nhau, chúng ta cần so sánh giá trị của hai chuỗi. Các hàm dựng sẵn được sử dụng trong nhiều ngôn ngữ lập trình để kiểm tra tính bình đẳng của hai chuỗi. Bạn có thể kiểm tra sự bằng nhau và bất bình đẳng của hai chuỗi trong bash bằng cách sử dụng nếu như tuyên bố. == được sử dụng để kiểm tra sự bình đẳng và ! = được sử dụng để kiểm tra sự bất bình đẳng của các chuỗi. Bạn có thể so sánh một phần giá trị của hai chuỗi cũng trong bash. Cách bạn có thể so sánh các giá trị chuỗi trong bash được hiển thị bằng cách sử dụng các ví dụ khác nhau trong hướng dẫn này.

Ví dụ-1: So sánh chuỗi sử dụng toán tử ==

Không có chức năng so sánh tích hợp để kiểm tra sự bình đẳng của hai giá trị chuỗi trong bash như ngôn ngữ lập trình tiêu chuẩn khác. Trong tập lệnh sau, hai biến chuỗi, strval1strval2 được khai báo. Tính công bằng của hai biến chuỗi này được kiểm tra bằng cách sử dụng nếu như tuyên bố của tập lệnh. Giá trị của strval1 được so sánh với một giá trị chuỗi để kiểm tra sự bình đẳng trong giây nếu như tuyên bố.







#! / bin / bash

strval1='Ubuntu'
strval2='Các cửa sổ'

# Kiểm tra bình đẳng hai biến chuỗi

nếu như [ $ strval1==$ strval2 ];sau đó
quăng đi 'Các chuỗi bằng nhau'
khác
quăng đi 'Các chuỗi không bằng nhau'
thì là ở

# Kiểm tra sự bình đẳng của một biến với một giá trị chuỗi

nếu như [ $ strval1=='Ubuntu' ];sau đó
quăng đi 'Hệ điều hành Linux'
khác
quăng đi 'Hệ điều hành Windows'
thì là ở

Đầu ra:



So sánh đầu tiên là không bằng nhau và so sánh thứ hai là ngang nhau.







Ví dụ-2: So sánh chuỗi sử dụng toán tử! =

Sự bất bình đẳng của hai biến chuỗi được kiểm tra trong ví dụ sau. Ở đây hai giá trị không bằng nhau. Vì vậy, nếu điều kiện sẽ là đúng và Hệ điều hành Windows sẽ in.

#! / bin / bash

strval1='Ubuntu'
strval2='Các cửa sổ'

# Kiểm tra bất đẳng thức của một biến có giá trị chuỗi

nếu như [ $ strval2 !='Ubuntu' ];sau đó
quăng đi 'Hệ điều hành Windows'
khác
quăng đi 'Hệ điều hành Linux'
thì là ở

Đầu ra:



Ví dụ-3: So sánh một phần chuỗi

Bạn có thể so sánh giá trị một phần bằng cách sử dụng ký tự thẻ đại diện trong tập lệnh bash. Trong tập lệnh sau, * được sử dụng làm ký tự thẻ đại diện để đối sánh một phần. Biến chuỗi, strval chứa từ Internet. Vì vậy, đầu tiên nếu như của script sẽ trả về true và in ra Khớp một phần . Bash phân biệt chữ hoa và chữ thường. Đối với điều này, thứ hai nếu như của script sẽ trả về false khi sử dụng internet dưới dạng một phần chuỗi mà không phải là so sánh khôn ngoan bằng chữ cái.

#! / bin / bash

strval='Microsoft Internet Explorer'

nếu như [[ $ strval==*Internet* ]];
sau đó
quăng đi 'Khớp một phần'
khác
quăng đi 'Không có trận đấu'
thì là ở

nếu như [[ $ strval==*Internet* ]];
sau đó
quăng đi 'Khớp một phần'
khác
quăng đi 'Không có trận đấu'
thì là ở

Đầu ra:

Ví dụ-4: So sánh chuỗi với giá trị đầu vào của người dùng

Đôi khi, chúng ta cần so sánh giá trị chuỗi do người dùng lấy với giá trị chuỗi cụ thể cho mục đích lập trình. Trong ví dụ sau, dữ liệu chuỗi sẽ được lấy từ người dùng làm đầu vào và so sánh sự bất bình đẳng của dữ liệu với một giá trị cố định. Nếu điều kiện là đúng thì nó sẽ in Không tìm thấy bản ghi , nếu không nó sẽ in Bản ghi được tìm thấy .

#! / bin / bash

quăng đi 'Điền tên của bạn'
đọcđầu vào

nếu như [ $ đầu vào !='Fahmida' ];
sau đó
quăng đi 'Không tìm thấy bản ghi'
khác
quăng đi 'Đã tìm thấy bản ghi'
thì là ở

Đầu ra:

Video của bài học này là ở đây:

Nhiệm vụ so sánh chuỗi trong bash sẽ dễ dàng hơn cho bạn sau khi hoàn thành các ví dụ trên với sự hiểu biết rõ ràng.