Was ist der Unterschied zwischen den Bash -Operatoren [[VS [VS (VS ((VS (()

Was ist der Unterschied zwischen den Bash -Operatoren [[VS [VS (VS ((VS (()
BASH liefert mehrere Operatoren, um Werte, Testbedingungen und mathematische Operationen durchzuführen. Zu diesen Betreibern gehören [[, [, (und (und können oft für neue Benutzer "verwirrend sein. Hier finden Sie einen Überblick über die verschiedenen Operatoren und ihre Funktionen.

Doppelte Quadratklammern [[]]

Die [[und]] werden für bedingte Ausdrücke in Bash verwendet. Die [[ist eine fortschrittliche Version der einzelnen Quadratklammern [] und wird für Musteranpassungen, reguläre Ausdrücke und erweiterte bedingte Ausdrücke verwendet. Der [[Operator ist) leistungsfähiger als [wird für viele Fälle bevorzugt.

#!Bin/Bash
String = Linux
if [[$ string == "Linux"]]; Dann
echo "Die Zeichenfolge ist Linux"
fi

Im folgenden Code wird der Operator mit Doppelquadratklammern verwendet, um zu prüfen, ob der Wert der Variablen $ String der Zeichenfolge „Linux“ entspricht:

Einquadratische Klammern []

Die [und] werden für bedingte Ausdrücke in Bash verwendet. Es wird auch der Befehl "Test" bezeichnet. Der Operator der einzelnen Quadratklammern [wird auch für bedingte Ausdrücke verwendet, weist jedoch mehr Einschränkungen auf als [[[[[[[). Es ist nützlich für grundlegende Vergleiche und Tests, z. B. überprüft, ob eine Datei existiert oder ob eine Zeichenfolge leer ist.

#!Bin/Bash
# Definieren Sie den Namen der Datei, um zu überprüfen
file = "/home/aaliyan/dokumente/bashfile2.Sch"
# Überprüfen Sie, ob die Datei vorliegt
if [-f $ file]; Dann
echo "Die Datei existiert"
anders
echo "Die Datei existiert nicht"
fi

Dieses Skript überprüft, ob eine Datei mit dem Namen „BashFile2).sh ”existiert im jeweiligen Verzeichnis und wenn die Datei vorliegt, druckt sie die Nachricht„ Die Datei existiert “an die Konsole, sonst druckt sie" Die Datei existiert nicht ":

Klammern ()

Der Operator des Klammers (wird verwendet, um Befehle in einer Subshell -Umgebung auszuführen. Dies bedeutet, dass Änderungen an der Umgebung innerhalb der Klammern die Eltern -Shell -Umgebung nicht beeinflussen.

#!Bin/Bash
# Verzeichnis in/home/user/verzeichnis wechseln und seinen Inhalt listen
(CD/Home/Aaliyan/Dokumente && ls)

Im folgenden Code wird der Klammern Operator verwendet, um das Verzeichnis in/home/aaliyan/dokumente zu ändern und den Befehl LS in einer Unterschale auszuführen:

Doppel -Klammern (())

Die ((und)) werden für die arithmetische Bewertung verwendet und unterstützt fortgeschrittenere Merkmale als der einzelne Klammern (wie bitweise Operationen, ein Beispiel -Bash -Skript, das die Verwendung von Doppel -Klammern demonstriert:

#!Bin/Bash
# Definieren Sie die Werte von a, b und c
A = 7
B = 9
C = 2
# Überprüfen Sie, ob die Summe von A und B größer als C ist
if (($ a + $ b> $ c)); Dann
echo "Die Summe von A und B ist größer als C"
fi

Im folgenden Code wird der Doppel -Klammern -Operator verwendet, um zu prüfen, ob die Summe der Variablen $ A und $ B höher ist als der Wert der Variablen $ C:

Um die Unterschiede zwischen diesen Operatoren weiter zu verstehen, habe ich eine Tabelle gegeben, mit der Sie effizientere Bash -Code schreiben und diese Bash -Operatoren effektiver verwenden können:

Operator Zweck Beispiel
[[ Ausdruck ]] Bedingte Ausdrücke if [[$ string == "Linux"]]; dann echo "Die Zeichenfolge ist Linux"
[ Ausdruck ] Grundlegende bedingte Ausdrücke if [-f $ file]; dann echo "Die Datei existiert"
( Befehl ) Führen Sie Befehle in einer Subschalenumgebung aus (CD/Home/Benutzer/Verzeichnis && ls)
(( Ausdruck )) Rechenoperationen if (($ a + $ b> $ c)); dann wiederholt "die Summe von A und B größer als C"

Abschluss

Die Bash -Operatoren [[]], [], () und (()) haben unterschiedliche Verwendungen und Syntax. Der Operator für Doppelquadratte [[]] wird zum Musteranpassung und zum String -Vergleich verwendet, während der Operator der einzelnen Quadrate [] für bedingte Anweisungen und Dateitests verwendet wird. Der Operator von Klammern () wird verwendet, um Befehle zu gruppieren, und der Operator für Doppel -Klammern (()) wird zur arithmetischen Bewertung verwendet. Es ist wichtig, den entsprechenden Operator für die jeweilige Aufgabe zu verwenden, um sicherzustellen, dass Ihre Bash -Skripte genau und effizient sind.