Bash-Scripting: Operatoren
Mit der Verwendung von Operatoren in einem Bash-Skript bestimmen Sie, ob eine Bedingung wahr ist oder nicht. Und das Testen auf Bedingungen ist die Art und Weise, wie wir ein Bash-Skript so programmieren, dass es dynamisch ist, indem wir ihm die Fähigkeit geben, je nach Szenario unterschiedlich zu reagieren.
Das Erstellen von Bedingungen ist der Grund, warum es wichtig ist, die verschiedenen Bash-Operatoren zu kennen. Mit Operatoren können wir Dinge wie arithmetische Funktionen testen, Zeichenketten vergleichen, überprüfen, ob eine Datei existiert und vieles mehr.
In diesem Tutorial lernen Sie alle Operatoren kennen, die in einem Bash-Skript auf einem Linux-System verwendet werden können. Wir gehen Beispiele durch, damit Sie lernen können, wie Sie jeden Operatortyp im realen Kontext verwenden können.
In diesem Tutorial lernen Sie:
- So verwenden Sie arithmetische Vergleichsoperatoren
- So verwenden Sie arithmetische Operatoren
- Verwenden von Zeichenfolgenvergleichsoperatoren
- So verwenden Sie Bash-Dateitestoperatoren
- So verwenden Sie boolesche Operatoren
Bash-Scripting: Arithmetische Vergleichsoperatoren
Schauen wir uns zunächst die arithmetischen Vergleichsoperatoren an. Diese sind einfach zu verstehen und werden in der Regel für zwei Zahlen verwendet, um zu bestimmen, ob eine bestimmte Bedingung wahr oder falsch ist. Hier ist ein Beispiel.
#!/bin/bash
declare integers
NUM1=2
NUM2=1
if [ $NUM1 -eq $NUM2 ]; then
echo "Both Values are equal"
else
echo "Values are NOT equal"
fi
Im obigen Skript verwendet unsere if-Anweisung den Operator -eq, um zu bestimmen, ob zwei ganze Zahlen gleich sind. Abhängig von der Antwort wird die if-Anweisung entweder mit ihrer ersten oder zweiten Klausel fortfahren.
Im Folgenden finden Sie eine Liste anderer arithmetischer Operatoren, die Sie in Ihrem Bash-Skript verwenden können.
| -lt | < |
| -gt | > |
| -le | <= |
| -ge | >= |
| -eq | == |
| -ne | != |
Beachten Sie, dass die Operatoren in der linken Spalte mit einfachen Klammern [ ] oder doppelten Klammern [[ ]] arbeiten, während die Operatoren in der rechten Spalte nur mit doppelten Klammern funktionieren.
Bash-Scripting: Arithmetische Operatoren
Arithmetische Operatoren in Bash geben uns die Möglichkeit, Dinge wie Addition, Subtraktion, Multiplikation, Division und andere grundlegende Arithmetik innerhalb eines Bash-Skripts auszuführen.
#!/bin/bash
echo '### let ###'
bash addition
let ADDITION=3+5
echo "3 + 5 =" $ADDITION
bash subtraction
let SUBTRACTION=7-8
echo "7 - 8 =" $SUBTRACTION
bash multiplication
let MULTIPLICATION=5*8
echo "5 * 8 =" $MULTIPLICATION
bash division
let DIVISION=4/2
echo "4 / 2 =" $DIVISION
bash modulus
let MODULUS=9%4
echo "9 % 4 =" $MODULUS
bash power of two
let POWEROFTWO=2**2
echo "2 ^ 2 =" $POWEROFTWO
echo '### Bash Arithmetic Expansion ###'
There are two formats for arithmetic expansion: $[ expression ]
and $(( expression #)) its your choice which you use
echo 4 + 5 = $((4 + 5))
echo 7 - 7 = $[ 7 - 7 ]
echo 4 x 6 = $((3 * 2))
echo 6 / 3 = $((6 / 3))
echo 8 % 7 = $((8 % 7))
echo 2 ^ 8 = $[ 2 ** 8 ]
echo '### Declare ###'
echo -e "Please enter two numbers \c"
read user input
read num1 num2
declare -i result
result=$num1+$num2
echo "Result is:$result "
bash convert binary number 10001
result=2#10001
echo $result
bash convert octal number 16
result=8#16
echo $result
bash convert hex number 0xE6A
result=16#E6A
echo $resultDas obige Skript dient als Beispiel für die Verwendung aller arithmetischen Rechenoperatoren in Bash. Es gibt auch Inkrement- (++) und Dekrementoperatoren (--), wie in der while-Schleife unten zu sehen ist.
#!/bin/bash
i=5
while [ $i -gt 0 ]
do
echo Countdown ends in $i...
((i--))
sleep 1
done
echo Countdown is over!Dieses Skript verwendet den Dekrement-Operator, um den Wert der Variablen $i bei jeder nachfolgenden Iteration durch die while-Schleife kontinuierlich zu reduzieren.
Bash-Scripting: Operatoren für den Zeichenfolgenvergleich
Wir können Zeichenfolgenvergleichsoperatoren verwenden, um zu bestimmen, ob eine Zeichenkette leer ist oder nicht, und um zu überprüfen, ob eine Zeichenkette gleich, kleiner oder größer als eine andere Zeichenkette ist.
#!/bin/bash
#Declare string S1
S1="Bash"
#Declare string S2
S2="Scripting"
if [ $S1 = $S2 ]; then
echo "Both Strings are equal"
else
echo "Strings are NOT equal"
fiDas obige Skript verfügt über eine if-Anweisung, die den Zeichenfolgenvergleichsoperator = verwendet, um zu bestimmen, ob zwei Zeichenfolgen gleich lang sind oder nicht.
Im Folgenden finden Sie eine Liste anderer Zeichenfolgenvergleichsoperatoren, die Sie in Ihrem Bash-Skript verwenden können.
| = | gleich |
| != | ungleich |
| < | weniger dann |
| > | größer als |
| -n s1 | Zeichenfolge s1 ist nicht leer |
| -z s1 | Zeichenfolge s1 ist leer |
Bash-Scripting: Bash-Dateitest-Operatoren
In Bash können wir testen, um verschiedene Merkmale einer Datei oder eines Verzeichnisses zu erkennen. Das folgende Skript prüft, ob eine Datei existiert oder nicht.
#!/bin/bash
file="./file"
if [ -e $file ]; then
echo "File exists"
else
echo "File does not exist"
fi
Das obige Skript verwendet den Dateitestoperator -e Bash, um zu untersuchen, ob $file existiert oder nicht. Abhängig von der Antwort wird entweder die erste oder die zweite Klausel der if-Anweisung ausgeführt.
Im Folgenden finden Sie eine Liste anderer Bash-Dateitestoperatoren, die Sie in Ihrem Bash-Skript verwenden können.
| -b Dateiname | Spezielle Datei blockieren |
| -c Dateiname | Datei mit Sonderzeichen |
| -d Verzeichnisname | Überprüfen Sie, ob ein Verzeichnis vorhanden ist |
| -e Dateiname | Überprüfen Sie, ob Dateien vorhanden sind |
| -f Dateiname | Prüfen, ob die Datei regulär und nicht in einem Verzeichnis vorhanden ist |
| -G Dateiname | Überprüfen Sie, ob die Datei vorhanden ist und sich im Besitz der gültigen Gruppen-ID befindet. |
| -g Dateiname | true, wenn die Datei vorhanden ist und set-group-id ist. |
| -k Dateiname | Klebriges Gebiss |
| -L Dateiname | Symbolischer Link |
| -O Dateiname | True, wenn die Datei vorhanden ist und sich im Besitz der effektiven Benutzer-ID befindet. |
| -r Dateiname | Prüfen, ob die Datei lesbar ist |
| -S Dateiname | Überprüfen Sie, ob es sich bei der Datei um einen Socket handelt |
| -s Dateiname | Überprüfen, ob die Datei eine Größe ungleich Null hat |
| -u Dateiname | Überprüfen Sie, ob das Datei-Set-ser-ID-Bit gesetzt ist |
| -w Dateiname | Prüfen, ob die Datei beschreibbar ist |
| -x Dateiname | Prüfen, ob die Datei ausführbar ist |
Bash-Scripting: Boolesche Operatoren
Boolesche Operatoren umfassen und && oder || und ungleich !. Mit diesen Operatoren können wir testen, ob zwei oder mehr Bedingungen wahr sind oder nicht.
#!/bin/bash
i=10
if [ $i -ge 5 ] && [ $i -le 15 ]; then
echo "value is between 5 and 15."
fiDas obige Skript verwendet den &&-Operator, um zu testen, ob zwei Bedingungen wahr sind (wenn die Variable $i zwischen den Zahlen 5 und 15 liegt). Wenn dies der Fall ist, wird der Befehl echo ausgeführt.
Abschließende Gedanken
In diesem Tutorial haben wir gesehen, wie Sie verschiedene Arten von Operatoren in Bash-Skripten unter Linux verwenden. Diese Operatoren ermöglichen es uns, grundlegende Arithmetik durchzuführen oder auf bestimmte Bedingungen zu testen. Operatoren sind in Bash-Skripten unerlässlich, die mehr als einen Satz von Anweisungen enthalten, die unter verschiedenen Bedingungen ausgeführt werden können.
