Jak porównać struny w Bash

How Compare Strings Bash



Dla różnych celów programistycznych musimy porównać wartości dwóch ciągów. Funkcje wbudowane są używane w wielu językach programowania do testowania równości dwóch ciągów. Równość i nierówność dwóch ciągów można sprawdzić w bashu za pomocą Jeśli oświadczenie. == służy do sprawdzania równości i ! = służy do sprawdzania nierówności strun. Możesz częściowo porównać wartości dwóch ciągów również w bash. Sposób porównywania wartości ciągów w bash pokazano na różnych przykładach w tym samouczku.

Przykład-1: Porównanie ciągów znaków przy użyciu operatorów ==

Nie ma wbudowanej funkcji porównania, która sprawdzałaby równość dwóch wartości łańcuchowych w bash, podobnie jak w innym standardowym języku programowania. W poniższym skrypcie dwie zmienne łańcuchowe, strval1 oraz strval2 są zadeklarowane. Kapitały tych dwóch zmiennych łańcuchowych są testowane przy użyciu pierwszego Jeśli oświadczenie scenariusza. Wartość strval1 jest porównywany z wartością ciągu, aby sprawdzić równość w drugim Jeśli oświadczenie.







#!/kosz/bash

strval1=„Ubuntu”
strval2=„Okna”

#Sprawdź równość dwóch zmiennych łańcuchowych

Jeśli [ $ strval1==$strval2 ];następnie
wyrzucił „Struny są równe”
w przeciwnym razie
wyrzucił „Struny nie są równe”
być

#Sprawdź równość zmiennej z wartością ciągu

Jeśli [ $ strval1==„Ubuntu” ];następnie
wyrzucił „System operacyjny Linux”
w przeciwnym razie
wyrzucił „System operacyjny Windows”
być

Wyjście:



Pierwsze porównanie nie jest równe, a drugie porównanie jest równe.







Przykład-2: Porównanie ciągów znaków przy użyciu operatora !=

W poniższym przykładzie sprawdzana jest nierówność dwóch zmiennych łańcuchowych. Tutaj dwie wartości nie są równe. Tak więc, jeśli warunek będzie prawdziwy i System operacyjny Windows wydrukuje.

#!/kosz/bash

strval1=„Ubuntu”
strval2=„Okna”

#Sprawdź nierówność zmiennej z wartością ciągu

Jeśli [ $strval2 !=„Ubuntu” ];następnie
wyrzucił „System operacyjny Windows”
w przeciwnym razie
wyrzucił „System operacyjny Linux”
być

Wyjście:



Przykład-3: Częściowe porównanie ciągów

Możesz porównać częściową wartość, używając znaku wieloznacznego w skrypcie bash. W poniższym skrypcie * jest używany jako symbol wieloznaczny do częściowego dopasowania. Zmienna łańcuchowa, strval zawiera słowo Internet. Tak więc pierwszy Jeśli skryptu zwróci true i wypisze Częściowe dopasowanie . Bash rozróżnia wielkość liter. Do tego drugi Jeśli skryptu zwróci false w przypadku użycia internetu jako częściowego ciągu, który nie jest równy w porównaniu z literą.

#!/kosz/bash

strval='Microsoft Internet Explorer'

Jeśli [[ $ strval==*Internet* ]];
następnie
wyrzucił „Częściowo pasuje”
w przeciwnym razie
wyrzucił 'Nie pasuje'
być

Jeśli [[ $ strval==*Internet* ]];
następnie
wyrzucił „Częściowo pasuje”
w przeciwnym razie
wyrzucił 'Nie pasuje'
być

Wyjście:

Przykład-4: Porównaj ciąg z wartością wprowadzoną przez użytkownika

Czasami musimy porównać wartość ciągu pobraną przez użytkownika z określoną wartością ciągu w celach programistycznych. W poniższym przykładzie dane ciągu zostaną pobrane od użytkownika jako dane wejściowe i porównane z nierównością danych ze stałą wartością. Jeśli warunek jest spełniony, zostanie wydrukowany Nie znaleziona nagrania , w przeciwnym razie zostanie wydrukowany Znaleziono rekord .

#!/kosz/bash

wyrzucił 'Wpisz swoje imię'
czytaćWejście

Jeśli [ $wejście !=„Fahmida” ];
następnie
wyrzucił 'Nie znaleziona nagrania'
w przeciwnym razie
wyrzucił „Znaleziono rekord”
być

Wyjście:

Film z tej lekcji znajduje się tutaj:

Zadanie porównywania ciągów w bashu będzie łatwiejsze po wykonaniu powyższych przykładów z jasnym zrozumieniem.