Website-Suche

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 $result

Das 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"
fi

Das 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 s1Zeichenfolge s1 ist nicht leer
-z s1Zeichenfolge 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 DateinameSpezielle Datei blockieren
-c DateinameDatei mit Sonderzeichen
-d VerzeichnisnameÜberprüfen Sie, ob ein Verzeichnis vorhanden ist
-e DateinameÜberprüfen Sie, ob Dateien vorhanden sind
-f DateinamePrü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 Dateinametrue, wenn die Datei vorhanden ist und set-group-id ist.
-k DateinameKlebriges Gebiss
-L DateinameSymbolischer Link
-O DateinameTrue, wenn die Datei vorhanden ist und sich im Besitz der effektiven Benutzer-ID befindet.
-r DateinamePrü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 DateinamePrüfen, ob die Datei beschreibbar ist
-x DateinamePrü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."
fi

Das 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.

Verwandte Artikel: