Bash-Skripte sind praktisch für die Automatisierung von Aufgaben, und Sie werden feststellen, dass sie sich hervorragend zum Erstellen einfacher Befehlszeilenanwendungen eignen. Die Bash-Shell interpretiert Bash-Skripte, sodass Sie keine Abhängigkeiten installieren müssen, um sie zu schreiben und auszuführen. Bash-Skripte sind auch portabel, da die meisten Unix-basierten Betriebssysteme denselben Shell-Interpreter verwenden.
Kenntnisse im Bash-Scripting sind ein Muss für jeden Entwickler, insbesondere wenn Sie mit Unix-basierten Systemen arbeiten.
Variablen in Bash
Bash-Variablen sind zwischen Groß- und Kleinschreibung zu unterscheiden. Um Variablen zu deklarieren, verwenden Sie ein Gleichheitszeichen (=) mit Name links und Wert rechts:
ZUSTAND=Washington
Der Wert, dem diese Deklaration zuweist ZUSTAND ist ein einzelnes Wort. Wenn Sie Leerzeichen in Ihrem Wert benötigen, verwenden Sie Anführungszeichen um ihn herum:
STATE="Nord-Arizona"
Sie müssen ein Dollarzeichen verwenden ($) Präfix für Referenzvariablen in anderen Variablen oder Anweisungen:
ZUSTAND=Washington
LOCATION="Mein Standort ist $STAAT"
Werte in Bash drucken
Es gibt mehrere Möglichkeiten, wie Sie Variablen in Bash drucken können. Du kannst den... benutzen Echo Befehl für die grundlegende Ausgabe oder den C-Stil Druckf Befehl zum Formatieren von Zeichenfolgen.
ZUSTAND=Washington
LOCATION="Mein Standort ist $STAAT"
Echo$LOCATION
Nach der Deklaration der ZUSTAND Variable definiert dieses Skript LAGE durch Bezugnahme auf STATE. Wenn dann Echo verwendet wird, um den endgültigen Wert der LOCATION-Variablen auszugeben.
Das Druckf Mit dem Schlüsselwort können Sie Formatierungsverben verwenden, um Daten auszugeben. Die Verben zur Zeichenfolgenformatierung ähneln denen in C und Go, jedoch mit eingeschränkten Verben.
Verb | Funktionalität |
---|---|
%c | druckt einzelne Zeichen |
%Ö | druckt Oktadezimalzahlen |
%s | druckt Zeichenfolgen unabhängig von der Groß-/Kleinschreibung |
%x | druckt hexadezimal Kleinbuchstaben |
%X | gibt hexadezimal Großbuchstaben aus |
%d | druckt ganze Zahlen |
%e | gibt wissenschaftliche Begriffe in Kleinbuchstaben aus |
%E | gibt wissenschaftliche Begriffe in Großbuchstaben aus |
%f | gibt Fließkommazahlen aus |
%% | druckt ein einzelnes Prozentzeichen. |
Hier ist ein Beispiel für die Verwendung eines Verbs mit dem drucken Stichwort.
ZUSTAND=Lagos
Druckf "Mein Standort ist %s" $STAAT
Das Druckf Funktion würde die ersetzen ZUSTAND Variable in der Position der %s Verb, und die Ausgabe wäre „My Location is Lagos“.
Sie können Kommentare in Bash mit dem Hash oder Pfund (#) Symbol. Kommentare werden von der Shell automatisch ignoriert.
#!/bin/bash
# STATE=Washington
# LOCATION="Mein Standort ist $STATE"
Es gibt keine mehrzeiligen Kommentare. Die meisten IDEs und Texteditoren ermöglichen das Kommentieren mit der Tastenkombination Strg/Befehl + Schrägstrich (/). Sie sollten in der Lage sein, die Verknüpfung zu verwenden, um mehrere einzeilige Kommentare zu erstellen.
Empfangen von Benutzereingaben in Bash
Wie in vielen anderen Programmiersprachen können Sie in Bash Benutzereingaben erhalten, um Ihre Programme/Skripte interaktiver zu gestalten. Du kannst den... benutzen lesen Befehl, um die Eingabe des Benutzers anzufordern.
lesen Antwort
In diesem Fall ist die Antwort Die Variable enthält die Eingabe des Benutzers bei der Lieferung.
Echo "Was willst du?: "
Antwort lesen
echo $antwort
Die Benutzereingabeanforderung befindet sich im obigen Beispiel in einer neuen Zeile.
Sie können die hinzufügen -n Flagge zu Echo print-Anweisung, um die Zeile beizubehalten, in der der Benutzer Eingaben macht.
echo -n "Was willst du?"
Antwort lesen
echo $antwort
Deklarieren von Arrays in Bash
Arrays in Bash sind wie die meisten Sprachen. Sie können eine Array-Variable in Bash deklarieren, indem Sie die Elemente in Klammern angeben.
Länder=('USA' 'Russland' 'Ukraine', "England", "Taiwan", "China")
Der Zugriff auf ein Array über den Verweis auf den Variablennamen würde das erste Element abrufen. Sie können auf das gesamte Array zugreifen, indem Sie das Sternchen als Index verwenden.
echo ${Länder[*]}
Sie können auch den Index des Arrays angeben, um auf ein bestimmtes Element zuzugreifen. Der Index eines Arrays beginnt bei Null.
Echo "${Länder[4]}"
Bedingte Anweisungen in Bash
Bash stellt Bedingungen für die Entscheidungsfindung in Programmen bereit.
Hier ist die Anatomie einer if-else-Anweisung in Bash. Sie müssen das Semikolon verwenden, um das Ende der Bedingung anzugeben.
wenn [[ Bedingung ]]; dann
Echo aussage1
elf [[Bedingung ]]; dann
Echo Aussage2
anders [[Bedingung ]]; dann
Echo Aussage3
fi
Sie müssen jeden beenden wenn Erklärung mit der fi Stichwort.
wenn [ 1 == 2 ]; dann
Echo eines
elf [ 2 == 3 ]; dann#else-if
Echo zwei
anders [ 4 > 3 ];
Echo "richtig, 3"
fi
Sie können case-Anweisungen in Ihren Bash-Programmen verwenden, indem Sie die verwenden Fall Stichwort. Sie müssen das Muster angeben, gefolgt von abschließenden Klammern vor der Anweisung.
STADT=Lagos
Fall$STADTin
"Washington") # Muster
Echo "Vereinigte Staaten von Amerika" # Aussage
;; # Ende eines Falls
"Lagos" | "Abuja")
Echo "Nigeria"
;;
"Johannesburg" | "Kapstadt")
Echo "Südafrika"
;;
*) # Standardmuster
Echo "Antarktis" # Standardanweisung
;;
esac# Ende der Case-Anweisung
Sie können den Standardfall definieren, indem Sie das Sternchen (*) als Muster verwenden. Case-Anweisungen müssen mit dem enden esac Stichwort.
Schleifen in Bash
Je nach Bedarf können Sie eine While-Schleife, eine Range-For-Schleife oder einen C-Stil verwenden for-Schleife für wiederkehrende Operationen.
Hier ist ein Beispiel für die for-Schleife im C-Stil. For-Schleifen müssen mit dem enden erledigt Schlüsselwort, und Sie müssen die for-Anweisung mit einem Semikolon gefolgt von the beenden tun Stichwort.
zum ((a = 0; < 10; a+2)); tun
Echo$ ein
erledigt
Der Bereich für Schleifen ist praktisch für die Arbeit mit Dateien und viele andere Operationen. Sie müssen die verwenden in Schlüsselwort mit dem Bereich for-Schleife.
zum ich in {1..7}; tun
Echo$1
erledigt
Hier ist eine einfache Endlosschleife, um Bash zu demonstrieren während Schleifen in Aktion.
Name=1
während [ 1 -le 5 ] # während 1 < 5
tun
Echo$name
erledigt
Das -le in der Bedingungsanweisung ist der binäre Operator für kleiner als.
Funktionen in Bash
Sie brauchen keine Schlüsselwörter, um Funktionen in Bash zu deklarieren. Sie können Funktionen mit dem Namen und dann Klammern vor dem Hauptteil der Funktion deklarieren.
print_working_directory() {
Echo$PWD#Aufrufen des PWD-Befehls aus dem Skript
}
Echo "Sie sind in $(print_working_directory)"
Funktionen können in Bash Variablen zurückgeben. Alles, was Sie brauchen, ist die Rückkehr Stichwort.
print_working_directory() {
Rückkehr$PWD
}
Das print_working_directory Die Funktion gibt das Arbeitsverzeichnis der Datei zurück.
Sie können Shell-Skripte in anderen Sprachen schreiben
Bash ist nicht die einzige Sprache, die Sie verwenden können, um mit der Shell Ihres Betriebssystems zu interagieren oder Befehlszeilenanwendungen zu erstellen. Sie können viele andere Sprachen wie Go, Python, Ruby und Rust verwenden.
Auf vielen Betriebssystemen ist Python3 vorinstalliert, und Python ist eine weit verbreitete Sprache. Wenn Sie noch mehr Funktionalität benötigen, als Bash-Skripte bieten können, sollten Sie die Verwendung von Python in Betracht ziehen.