Android

Cách so sánh chuỗi trong bash

Làm sao để đánh bại vi khuẩn | Mômô sợ thuốc | Cuộc chiến vi khuẩn | Hoạt hình thiếu nhi | BabyBus

Làm sao để đánh bại vi khuẩn | Mômô sợ thuốc | Cuộc chiến vi khuẩn | Hoạt hình thiếu nhi | BabyBus

Mục lục:

Anonim

Khi viết các tập lệnh Bash, bạn thường sẽ cần so sánh hai chuỗi để kiểm tra xem chúng có bằng nhau hay không. Hai chuỗi bằng nhau khi chúng có cùng độ dài và chứa cùng một chuỗi ký tự.

Hướng dẫn này mô tả cách so sánh các chuỗi trong Bash.

Toán tử so sánh

Toán tử so sánh là toán tử so sánh giá trị và trả về giá trị đúng hoặc sai. Khi so sánh các chuỗi trong Bash, bạn có thể sử dụng các toán tử sau:

  • string1 = string2 string1 == string2 - Toán tử đẳng thức trả về true nếu các toán hạng bằng nhau.
    • Sử dụng toán tử = với test ; then echo "Strings are equal." else echo "Strings are not equal." fi ; then echo "Strings are equal." else echo "Strings are not equal." fi

      Khi tập lệnh được thực thi, nó sẽ in đầu ra sau.

      Strings are equal.

      Đây là một tập lệnh khác lấy đầu vào từ người dùng và so sánh các chuỗi đã cho. Trong ví dụ này, chúng tôi sẽ sử dụng ]; then echo "Strings are equal." else echo "Strings are not equal." fi ]; then echo "Strings are equal." else echo "Strings are not equal." fi

      Chạy tập lệnh và nhập chuỗi khi được nhắc:

      Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.

      Bạn cũng có thể sử dụng logic và && và hoặc || để so sánh các chuỗi:

      ] && echo "Equal" || echo "Not equal"

      Not equal

      Kiểm tra xem một chuỗi có chứa một chuỗi con

      Có nhiều cách để kiểm tra xem một chuỗi có chứa một chuỗi con hay không.

      Một cách tiếp cận là sử dụng bao quanh chuỗi con với các ký hiệu dấu hoa thị * có nghĩa là khớp với tất cả các ký tự.

      #!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi

      Kịch bản sẽ lặp lại như sau:

      It's there.

      Một tùy chọn khác là sử dụng toán tử regex =~ như hình dưới đây:

      #!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi

      Khoảng thời gian theo sau dấu hoa thị .* Khớp 0 hoặc nhiều lần xuất hiện bất kỳ ký tự nào ngoại trừ một ký tự dòng mới.

      Kiểm tra xem một chuỗi có trống không

      Thông thường, bạn cũng sẽ cần kiểm tra xem một biến có phải là một chuỗi rỗng hay không. Bạn có thể làm điều này bằng cách sử dụng các toán tử -n -z .

      #!/bin/bash VAR='' if]; then echo "String is empty." fi

      String is empty.

      #!/bin/bash VAR='Linuxize' if]; then echo "String is not empty." fi

      String is not empty.

      So sánh các chuỗi với Toán tử trường hợp

      Thay vì sử dụng các toán tử kiểm tra, bạn cũng có thể sử dụng câu lệnh tình huống để so sánh các chuỗi:

      #!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esac

      Linuxize matched.

      So sánh thuật ngữ

      So sánh thuật ngữ là một hoạt động trong đó hai chuỗi được so sánh theo thứ tự abc bằng cách so sánh các ký tự trong một chuỗi liên tục từ trái sang phải. Loại so sánh này hiếm khi được sử dụng.

      Các tập lệnh sau so sánh hai chuỗi từ vựng:

      #!/bin/bash VAR1="Linuxize" VAR2="Ubuntu" if]; then echo "${VAR1} is lexicographically greater then ${VAR2}." elif]; then echo "${VAR2} is lexicographically greater than ${VAR1}." else echo "Strings are equal" fi

      Kịch bản sẽ xuất ra như sau:

      Ubuntu is lexicographically greater than Linuxize.

      Phần kết luận

      So sánh chuỗi là một trong những hoạt động cơ bản nhất và thường được sử dụng trong kịch bản Bash. Sau khi đọc hướng dẫn này, bạn sẽ hiểu rõ về cách so sánh các chuỗi trong Bash. Bạn cũng có thể kiểm tra hướng dẫn của chúng tôi về nối chuỗi.

      thiết bị đầu cuối bash