Ads by ProfitSence
Close

Vergleichen Sie Zeichenfolgen bash

Last Updated on Sonntag 9. Okt. 2022

bash compare strings

Beim Schreiben von Bash-Skripten müssen Sie oft zwei Zeichenfolgen vergleichen, um zu überprüfen, ob sie gleich sind oder nicht.

Vergleichsoperatoren

  • Vergleichsoperatoren sind Operatoren, die Werte vergleichen und true oder false zurückgeben.
  • string1 = string2 und string1 == string2 - Der Gleichheitsoperator gibt true zurück, wenn die Operanden gleich sind.
  • Verwenden Sie den Operator = mit dem Befehl test``[.
  • Verwenden Sie den Operator == mit dem Befehl [[ für den Musterabgleich.
  • string1 != string2 - Der Ungleichheitsoperator gibt true zurück, wenn die Operanden nicht gleich sind.
  • string1 =~ regex - Der regex-Operator gibt true zurück, wenn der linke Operand mit dem erweiterten regulären Ausdruck auf der rechten Seite übereinstimmt.
  • string1 > string2 - Der Operator größer als gibt true zurück, wenn der linke Operand größer als der rechte ist, sortiert nach lexikographischer (alphabetischer) Reihenfolge.
  • string1 < string2 - Der Operator less than gibt true zurück, wenn der rechte Operand größer als der rechte ist, sortiert nach lexikographischer (alphabetischer) Reihenfolge.
  • z string - Stimmt, wenn die Zeichenfolgenlänge Null ist.
  • n string - True, wenn die Stringlänge ungleich Null ist.

bash string compare

Überprüfen Sie, ob zwei Zeichenfolgen gleich sind

			
					str1="CodeJagd"
str2="CodeJagd"

if [ $str1 = $str2 ]; then
    echo "Equal"
else
    echo "Not equal"
fi

			
	

Ausgabe

			
					Equal

			
	

Wenn Sie die Eingabe vom Benutzer übernehmen und die angegebenen Zeichenfolgen vergleichen möchten. In diesem Beispiel verwenden wir den Befehl [[ und den Operator ==

			
					read -p "Enter first string: " str1
read -p "Enter second string: " str2

if [ $str1 = $str2 ]; then
    echo "Equal"
else
    echo "Not equal"
fi

			
	

Ausgabe

			
					Enter first string: code
Enter second string: code
Equal

			
	

Sie können auch das logische und && und oder || verwenden um Zeichenfolgen zu vergleichen

			
					read -p "Enter first string: " str1
read -p "Enter second string: " str2

[[ "$str1" == "$str2" ]] && echo "Equal" || echo "Not equal"

			
	

Ausgabe

			
					Enter first string: code
Enter second string: code
Equal

			
	

compare strings bash

Überprüfen Sie, ob eine Zeichenfolge eine Teilzeichenfolge enthält

Option 1: Verwenden Sie das Symbol *

Mit Sternchen *, was bedeutet, dass alle Zeichen übereinstimmen.

			
					str1='Hello World'
if [[ $str1 == *"World"* ]]; then
  echo "Present"
else
  echo "Not Present"
fi

			
	

Ausgabe

			
					Present

			
	

bash compare

Option 2: Verwenden Sie den Operator =~

  • Mit dem Regex-Operator =~, was bedeutet, dass alle Zeichen übereinstimmen.
  • .* entspricht null oder mehr Vorkommen eines beliebigen Zeichens
			
					str1='Hello World'
if [[ $str1 =~ .*World.*  ]]; then
  echo "Present"
else
  echo "Not Present"
fi

			
	

Ausgabe

			
					Present

			
	

bash string comparison

Überprüfen, ob eine Zeichenfolge leer ist

Sie können überprüfen, ob eine Variable eine leere Zeichenfolge ist oder nicht, indem Sie die Operatoren -n und -z verwenden.

Verwenden des Operators -z

			
					str1='Hello World'
if [[ -z $str1 ]]; then
  echo "Empty"
else
  echo "Not Empty"
fi

			
	

Ausgabe

			
					Not Empty

			
	

Verwenden des Operators -n

			
					str1=' '
if [[ -n $str1 ]]; then
  echo "Empty"
else
  echo "Not Empty"
fi

			
	

Ausgabe

			
					Empty

			
	

Das Vergleichen von Zeichenfolgen ist eine der grundlegendsten und am häufigsten verwendeten Operationen im Bash-Scripting.