Porównaj ciąg w Bash

Porównaj ciąg w Bash

Potrzeba porównywania ciągów w skrypcie Bash jest stosunkowo powszechna i może być użyta do sprawdzenia określonych warunków przed przejściem do następnej części skryptu. Ciąg może być dowolną sekwencją znaków. Aby sprawdzić, czy dwa ciągi są takie same, oba ciągi muszą zawierać dokładnie te same znaki i w tej samej kolejności. Może to być słowo lub całe zdanie. Na przykład, String One jest równe String One ale nie jest równe ciąg drugi. Wpadnij na pomysł?

W tym przewodniku pokażemy, jak porównać ciągami w skorupce Bash w systemie Linux. Pokażymy to w kontekście prostego skryptu, jeśli bash/else możesz zobaczyć, jak te testowanie tego warunku działałyby podczas opracowywania skryptów, ale pokażemy również, w jaki sposób można dokonać tego samego porównania w terminalu wiersza poleceń.

W tym samouczku nauczysz się:

  • Jak porównać struny w Bash
  • Przykład, jeśli/else bash scenariusze, które porównują struny
Porównanie strun w Bash Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Każda dystrybucja Linux
Oprogramowanie Nie dotyczy
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Porównaj, czy dwa ciągi są równe

Możesz otworzyć terminal w swoim systemie i użyć niektórych z tych przykładów, aby poczuć, jak działają operatorzy bash, jeśli chodzi o porównywanie ciągów.

Możesz użyć następującej składni do porównania dwóch ciągów.

$ [„jabłka” = „jabłka”] $ echo $? 0 

Zwrócona wartość 0 oznacza prawdziwe. Innymi słowy, sznurki pasują (jak to wyraźnie widzimy).



Spróbujmy innego.

$ [„jabłka” = „pomarańcze”] $ echo $? 1 

W tym przykładzie, jabłka nie równa się pomarańcze, więc wartość 1 (Fałsz) zostaje zwrócony. Bardziej złożone przykłady najlepiej pokazać w kontekście skryptów bash, które omówimy w następnym rozdziale.

Przykładowe scenariusze Bash w celu porównania ciągów

W skrypcie Bash normalnie przechowujesz jeden lub oba swoje struny jako zmienne przed ich porównanie. Oto prosty przykład.

#!/bin/bash string1 = "jabłki" string2 = "pomarańcze" if ["$ string1" = "$ string2"]; następnie echo „Dwa sznurki są równe.„Else Echo” Dwa sznurki nie są równe.„Fi
Kopiuj

Wykonanie tego skryptu wytworzy następujące dane wyjściowe.

Dwa struny nie są równe. 

Ale = nie jest dla nas jedynym dostępnym operatorem. Moglibyśmy również sprawdzić, czy dwa struny nie są równe z != operator.

#!/bin/bash string1 = "jabłki" string2 = "pomarańcze" if ["$ string1" != "$ string2"]; wtedy sznurki echo są różne.Sznurki „else echo” nie różnią się.„Fi
Kopiuj

Wykonanie tego skryptu wytworzy następujące dane wyjściowe.

Struny są różne. 

Jest także -z Aby sprawdzić, czy długość ciągu wynosi 0 i -N Aby sprawdzić, czy długość ciągu jest niezerowa.

#!/bin/bash string = "" if [[-z $ string]]; Następnie echo „Sznurek jest pusty.„else echo” ciąg nie jest pusty.„Fi
Kopiuj

Wykonanie tego skryptu wytworzy następujące dane wyjściowe.

Ciąg jest pusty. 

I ten sam skrypt z -N i zamiast tego niezerowy ciąg:



#!/bin/bash string = "hello" if [[-n $ string]]; Następnie echo „ciąg nie jest pusty.„else echo” ciąg jest pusty.„Fi
Kopiuj

Wykonanie tego skryptu wytworzy następujące dane wyjściowe.

Ciąg nie jest pusty. 

Wniosek

W tym przewodniku widzieliśmy, jak porównywać ciągami w Bash, zarówno z wiersza poleceń, jak i w if/else bash scenariusze. Ta funkcjonalność można oczywiście rozszerzyć na bardziej solidne skrypty, które odczytują dane wejściowe od użytkowników lub korzystają z operatora spraw itp.

Są to wszystkie metody porównawcze, których należy porównać do porównywania ciągów w BASH. Jeszcze więcej istnieje podczas porównywania liczb, takich jak -Lt (mniej niż) i -Gt (większe niż) operatorzy. Ale omówimy to bardziej szczegółowo w naszym przewodniku po bashu.

Powiązane samouczki Linux:

  • Skrypt bash: Przykłady porównywania ciągów
  • VIM Editor Basics w Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Mastering Bash Script Loops
  • Specjalne zmienne bash z przykładami
  • Hung Linux System? Jak uciec do wiersza poleceń i…
  • Zagnieżdżone pętle w skryptach Bash
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux