Πώς να συγκρίνετε συμβολοσειρές στο Bash

How Compare Strings Bash



Για διαφορετικούς σκοπούς προγραμματισμού, πρέπει να συγκρίνουμε την τιμή δύο συμβολοσειρών. Οι ενσωματωμένες συναρτήσεις χρησιμοποιούνται σε πολλές γλώσσες προγραμματισμού για να ελέγξουν την ισότητα δύο συμβολοσειρών. Μπορείτε να ελέγξετε την ισότητα και την ανισότητα δύο συμβολοσειρών στο bash χρησιμοποιώντας αν δήλωση. == χρησιμοποιείται για τον έλεγχο της ισότητας και ! = = χρησιμοποιείται για τον έλεγχο της ανισότητας των συμβολοσειρών. Μπορείτε να συγκρίνετε εν μέρει τις τιμές δύο συμβολοσειρών επίσης στο bash. Ο τρόπος σύγκρισης των τιμών συμβολοσειράς στο bash εμφανίζεται χρησιμοποιώντας διάφορα παραδείγματα σε αυτό το σεμινάριο.

Παράδειγμα-1: Σύγκριση συμβολοσειρών χρησιμοποιώντας == τελεστές

Δεν υπάρχει ενσωματωμένη λειτουργία σύγκρισης για τον έλεγχο της ισότητας δύο τιμών συμβολοσειράς στο bash, όπως άλλες τυπικές γλώσσες προγραμματισμού. Στο παρακάτω σενάριο, δύο μεταβλητές συμβολοσειράς, strval1 και strval2 δηλώνονται. Η καθαρότητα αυτών των δύο μεταβλητών συμβολοσειράς ελέγχεται χρησιμοποιώντας την πρώτη αν δήλωση του σεναρίου. Η αξία του strval1 συγκρίνεται με μια τιμή συμβολοσειράς για να ελέγξει την ισότητα στο δεύτερο αν δήλωση.







#!/bin/bash

strval1='Ubuntu'
strval2='Windows'

#Ελέγξτε την ισότητα δύο μεταβλητών συμβολοσειράς

αν [ $ strval1==$ strval2 ]?τότε
πέταξε έξω «Οι χορδές είναι ίσες»
αλλού
πέταξε έξω «Οι χορδές δεν είναι ίσες»
είναι

#Ελέγξτε την ισότητα μιας μεταβλητής με τιμή συμβολοσειράς

αν [ $ strval1=='Ubuntu' ]?τότε
πέταξε έξω «Λειτουργικό σύστημα Linux»
αλλού
πέταξε έξω «Λειτουργικό σύστημα Windows»
είναι

Παραγωγή:



Η πρώτη σύγκριση δεν είναι ίση και η δεύτερη σύγκριση είναι ίση.







Παράδειγμα-2: Σύγκριση συμβολοσειρών χρησιμοποιώντας! = Τελεστή

Η ανισότητα δύο μεταβλητών συμβολοσειράς ελέγχεται στο ακόλουθο παράδειγμα. Εδώ δύο τιμές δεν είναι ίσες. Έτσι, εάν η συνθήκη θα είναι αληθινή και Λειτουργικό σύστημα Windows θα εκτυπώσει.

#!/bin/bash

strval1='Ubuntu'
strval2='Windows'

#Ελέγξτε την ανισότητα μιας μεταβλητής με τιμή συμβολοσειράς

αν [ $ strval2 !='Ubuntu' ]?τότε
πέταξε έξω «Λειτουργικό σύστημα Windows»
αλλού
πέταξε έξω «Λειτουργικό σύστημα Linux»
είναι

Παραγωγή:



Παράδειγμα-3: Σύγκριση μερικής συμβολοσειράς

Μπορείτε να συγκρίνετε μερική τιμή χρησιμοποιώντας χαρακτήρα μπαλαντέρ σε σενάριο bash. Στο παρακάτω σενάριο, * χρησιμοποιείται ως χαρακτήρας wild card για μερική αντιστοίχιση. Η μεταβλητή συμβολοσειράς, strval περιέχει τη λέξη Διαδίκτυο. Λοιπόν, το πρώτο αν του σεναρίου θα επιστρέψει true και θα εκτυπωθεί Εν μέρει ταιριάζει Το Το Bash έχει διάκριση πεζών -κεφαλαίων. Για αυτό, το δεύτερο αν του σεναρίου θα επιστρέψει ψευδές για χρήση του διαδικτύου ως μερικής συμβολοσειράς που δεν είναι ίση με τη λογική σύγκριση.

#!/bin/bash

strval='Microsoft Internet Explorer'

αν [[ $ strval==*Διαδίκτυο* ]]?
τότε
πέταξε έξω «Μερικά ταιριάζει»
αλλού
πέταξε έξω 'Δεν ταιριάζει'
είναι

αν [[ $ strval==*Διαδίκτυο* ]]?
τότε
πέταξε έξω «Μερικά ταιριάζει»
αλλού
πέταξε έξω 'Δεν ταιριάζει'
είναι

Παραγωγή:

Παράδειγμα-4: Συγκρίνετε συμβολοσειρά με τιμή εισαγωγής χρήστη

Μερικές φορές, πρέπει να συγκρίνουμε την τιμή συμβολοσειράς που λαμβάνει ο χρήστης με συγκεκριμένη τιμή συμβολοσειράς για σκοπούς προγραμματισμού. Στο ακόλουθο παράδειγμα, θα ληφθούν δεδομένα συμβολοσειράς από τον χρήστη ως είσοδο και θα συγκριθεί η ανισότητα των δεδομένων με μια σταθερή τιμή. Εάν η συνθήκη είναι αληθής, τότε θα εκτυπωθεί Δεν Βρέθηκε Αρχείο , αλλιώς θα εκτυπωθεί Βρέθηκε εγγραφή Το

#!/bin/bash

πέταξε έξω 'Εισάγετε το όνομά σας'
ανάγνωσηεισαγωγή

αν [ $ εισαγωγή !='Fahmida' ]?
τότε
πέταξε έξω 'Δεν Βρέθηκε Αρχείο'
αλλού
πέταξε έξω «Βρέθηκε δίσκος»
είναι

Παραγωγή:

Το βίντεο αυτού του μαθήματος είναι εδώ:

Η εργασία σύγκρισης συμβολοσειρών στο bash θα είναι ευκολότερη για εσάς αφού ολοκληρώσετε τα παραπάνω παραδείγματα με σαφή κατανόηση.