Jak porównać struny w Bash

Jak porównać struny w Bash

Do różnych celów programowania musimy porównać wartość dwóch ciągów. W wielu języku programowania używane są wbudowane funkcje do przetestowania równości dwóch ciągów. Możesz sprawdzić równość i nierówność dwóch strun w Bash, używając Jeśli oświadczenie. "==”Służy do sprawdzenia 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. Jak porównać wartości ciągów w BASH, jest pokazywane przy użyciu różnych przykładów w tym samouczku.

Przykład-1: Porównanie ciągów za pomocą operatorów „==”

Nie ma wbudowanej funkcji porównawczej, aby sprawdzić równość dwóch wartości łańcuchowych w Bash, jak inny standardowy język programowania. W poniższym skrypcie dwie zmienne ciągów, strval1 I strval2 są zadeklarowane. Kapitał tych dwóch zmiennych ciągów jest testowany za pomocą pierwszego Jeśli Oświadczenie o skrypcie. Wartość strval1 jest porównywany z wartością ciągów do sprawdzenia równości w drugim Jeśli oświadczenie.

#!/bin/bash
strval1 = "Ubuntu"
strval2 = „Windows”
#Sprawdź równość dwie zmienne ciągów
jeśli [$ strval1 == $ strval2]; Następnie
Echo „struny są równe”
w przeciwnym razie
Echo „struny nie są równe”
fi
#Sprawdź równość zmiennej o wartości ciągu
jeśli [$ strval1 == "Ubuntu"]; Następnie
Echo „system operacyjny Linux”
w przeciwnym razie
Echo „system operacyjny Windows”
fi

Wyjście:

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

Przykład-2: Porównanie ciągów za pomocą „!= ”Operator

Nierówność dwóch zmiennych ciągów jest sprawdzana w poniższym przykładzie. Tutaj dwie wartości nie są równe. Tak więc, jeśli stan będzie prawdziwy i „System operacyjny Windows ” wydrukuje.

#!/bin/bash
strval1 = "Ubuntu"
strval2 = „Windows”
#Sprawdź nierówność zmiennej o wartości ciągu
Jeśli [$ strval2 != „Ubuntu”]; Następnie
Echo „system operacyjny Windows”
w przeciwnym razie
Echo „system operacyjny Linux”
fi

Wyjście:

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

Możesz porównać wartość częściową, używając znaku Wild Card w skrypcie Bash. W następującym skrypcie, „*” jest używany jako znak dzikiej karty do częściowego dopasowania. Zmienna ciągów, strval zawiera słowo "Internet". Więc pierwszy Jeśli skryptu zwróci prawdziwie i wydrukuje „Częściowo dopasowywać". Bash jest wrażliwy. W tym celu drugi Jeśli skryptu zwróci false za używanie „Internetu” jako częściowego ciągu, który nie jest równy przez porównanie liter.

#!/bin/bash
strval = "Microsoft Internet Explorer"
jeśli [[$ strval == * Internet *]];
Następnie
echo „częściowo dopasować się”
w przeciwnym razie
echo „bez meczu”
fi
jeśli [[$ strval == * Internet *]];
Następnie
echo „częściowo dopasować się”
w przeciwnym razie
echo „bez meczu”
fi

Wyjście:

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

Czasami musimy porównać wartość ciągu pobraną przez użytkownika z określoną wartością ciągów do celu programowania. W poniższym przykładzie dane stringowe zostaną pobrane od użytkownika jako dane wejściowe i porównane nierówność danych o stałej wartości. Jeśli warunek jest prawdziwy, wydrukuje „Nie znaleziona nagrania", W przeciwnym razie wydrukuje „Znaleziono rekord".

#!/bin/bash
Echo „Wprowadź swoje imię”
Przeczytaj wejście
Jeśli [$ wejście != "Fahmida"];
Następnie
Echo „Brak płyty”
w przeciwnym razie
Echo „Znaleziono”
fi

Wyjście:

Film tej lekcji jest tutaj:

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