Direkt zum Inhalt

Wie man ein Bash-Skript schreibt: Ein einfaches Bash Skripting Tutorial

Entdecke die Grundlagen der Bash-Skripterstellung und lerne, wie man ein Bash-Skript schreibt.
Aktualisierte 11. Sept. 2024  · 5 Min. Lesezeit

Eine Shell ist eine Art Computerprogramm, das eine Schnittstelle zum Betriebssystem darstellt. Der Name Shell wurde von der Tatsache abgeleitet, dass sie die äußerste Schicht um das Betriebssystem herum ist.

Um die Interaktion zwischen Benutzern und dem Betriebssystem zu verwalten, fordert die Shell eine Eingabe an und interpretiert diese dann für das Betriebssystem, bevor sie die Ausgaben verarbeitet, die sie erhält. Diese Eingabe kann über eine Befehlszeilenschnittstelle (CLI) oder eine grafische Benutzeroberfläche (GUI) erfolgen, je nachdem, welche Aufgabe der Computer übernimmt.

In unserem Artikel Was ist eine Shell? erfährst du mehr darüber, was eine Shell ist und wie sie dir helfen kann.

Eine Shell ermöglicht es Benutzern und anderen Programmen, direkt mit den Komponenten eines Betriebssystems zu kommunizieren.

Eine Fibel für Shell Scripting

Shell-Skripte sind ein wichtiger und leicht zu erlernender Teil der Kommunikation mit dem Betriebssystem eines Computers (auch wenn du keinen Programmierhintergrund hast). Unter Skripten verstehen wir eine Abfolge von Shell- und Betriebssystembefehlen, die geschrieben und dann in einer Datei gespeichert werden: Zu den typischen Operationen, die von Shell-Skripten ausgeführt werden, gehören Aufgaben wie Dateimanipulation, Programmausführung und das Drucken von Text.

Lerne mehr über Datenverarbeitung in Shell mit unserem Kurs.

Wenn du lernst, diese einfache Prozedur auszuführen, kannst du viel Zeit bei der Entwicklung sparen, da bestimmte Befehle nicht wiederholt manuell geschrieben werden müssen - es ist sogar möglich, Skripte für die automatische Ausführung zu planen.

Für Unix- und Linux-Benutzer gibt es mehrere verschiedene Shells. Im weiteren Verlauf dieses Tutorials werden wir uns speziell auf die Bourne Again SHell (bash) konzentrieren, die eine erweiterte Version der Bourne Shell ist und eine der gängigsten Befehlszeilenschnittstellen für Unix-basierte Betriebssysteme (einschließlich Linux) darstellt.

Was ist ein Bash-Skript?

Bash ist eine Unix-Befehlszeilenschnittstelle, die für die Interaktion mit dem Betriebssystem eines Computers zuständig ist. Ähnlich wie Filmdrehbücher den Schauspielern sagen, was sie zu tun haben, sagt ein Bash-Skript der Bash-Shell, was sie tun soll. Ein Bash-Skript ist also eine nützliche Methode, um Befehle zu gruppieren und ein Programm zu erstellen.

Jeder Befehl, den du direkt von der Kommandozeile ausführen könntest, kann in ein Bash-Skript eingefügt werden, und du kannst erwarten, dass es die gleichen Aktionen ausführt wie von der Kommandozeile. Alternativ kannst du jeden Befehl, den du in dein Bash-Skript eingibst, auch direkt von der Kommandozeile aus ausführen und das Ergebnis sollte dasselbe sein. Mit anderen Worten: Wenn du weißt, wie du deinen Computer über die Kommandozeile bedienen kannst, kennst du dich bereits mit Bash-Skripten aus.

Einer der Hauptunterschiede ist, dass ein Bash-Skript eine reine Textdatei ist, die per Konvention mit der Erweiterung .sh gespeichert wird (sie können auch ohne die Erweiterung .sh ausgeführt werden).

Ein weiteres Merkmal von Bash-Skripten ist das "Shebang", das in der ersten Zeile aller Skripte steht. Im Wesentlichen ist der shebang ein absoluter Pfad zum Bash-Interpreter, der aus einer Kombination von bash "#" und bang "!" besteht, gefolgt von dem Pfad zur Bash-Shell. Er wird verwendet, um dem Linux-Betriebssystem mitzuteilen, welchen Interpreter es zum Parsen der Datei verwenden soll.

Einführung in die Bash-Skripterstellung

Lerne die Grundlagen der Bash-Skripterstellung und das Erstellen von Funktionen.
Kostenloses Lernen beginnen

Wie man ein Bash-Skript schreibt

Wir werden ein einfaches Bash-Skript-Beispiel "Hello World" erstellen, um dir den Einstieg in die Bash-Skripterstellung zu erleichtern. Wenn du tiefer in die Bash-Skripterstellung einsteigen willst, schau dir den Kurs Einführung in die Bash-Skripterstellung an. 

Schritt 1: Erstelle eine neue Klartextdatei 

Der erste Schritt besteht darin, eine neue Textdatei zu erstellen. Du kannst dies tun, indem du den folgenden Befehl in deiner Eingabeaufforderung ausführst: 

notepad hello_world.sh

Hinweis: Wenn du diesen Befehl ausführst, wirst du gefragt, ob du eine neue Datei erstellen möchtest; wähle "Ja". 

Schritt 2: Festlegen des Interpreters

In der ersten Zeile unseres Skripts müssen wir angeben, welchen Interpreter wir zum Parsen unseres Skripts verwenden möchten. In diesem Szenario ist es Bash. Deshalb müssen wir den Shebang in die erste Zeile unseres Skripts schreiben. 

#!/bin/bash

Schritt 3: Befehle umsetzen

Das Ziel unseres Bash-Skripts ist es, "Hello World!" zu drucken. Um diese Aufgabe auszuführen, wechselst du in eine neue Zeile und verwendest den Befehl echo, gefolgt von der Zeichenkette, die wir ausgeben möchten.

echo "Hello World!" 

Wenn du fertig bist, speicherst du die Datei und öffnest deine Git Bash.  

Hinweis: Du kannst Git Bash unter Git Downloads herunterladen. Wähle einfach die Version von Git aus, die zu deinem Betriebssystem passt. 

Als nächstes führst du den folgenden Befehl aus: 

bash hello_world.sh

Dies sollte "Hello World!" ausgeben, wie in Abbildung 1 zu sehen ist. 

Ein Aufruf des Bash-Skripts gibt "Hello World!" im Terminal zurück.

Abbildung 1: Die Ausgabe unseres Bash-Skripts

Wie man Benutzereingaben in Bash-Skripten erfasst

Jetzt weißt du, wie du ein einfaches "Hello World!"-Skript schreiben kannst. Schauen wir uns an, wie wir mit der Bash Skripte schreiben können, die Eingaben vom Benutzer verlangen. In diesem Beispiel erstellen wir einen Aktivitätsgenerator, der den Benutzer nach seinem Namen fragt und dann eine zufällige Aktivität aus einer Reihe von Aktivitäten auswählt, zu der er den Benutzer einladen kann. 

Die Schritte zum Erstellen der Datei sind dieselben wie in How to Write a Bash Script - der Unterschied sind die Befehle, die wir in unser Bash-Skript eingeben. 

  1. Erstelle eine neue Textdatei in der Eingabeaufforderung mit Notepad.
notepad generate-activity.sh 
  1. Gib den Bash-Interpreter an, indem du das Shebang in der ersten Zeile des Skripts eingibst.
#!/bin/bash
  1. Schreibe die Befehle, um das Skript auszuführen und speichere dann die Datei.

Wenn wir jetzt unser Bash-Skript im Terminal aufrufen, sollten wir die gleiche Ausgabe wie in Abbildung 2 erwarten. 

#!/bin/bash

# Greet user and request their name
echo "The activity generator"
read -p "What is your name? " name

# Create an array of activities
activity[0]="Football"
activity[1]="Table Tennis"
activity[2]="8 Ball Pool"
activity[3]="PS5"
activity[4]="Blackjack"

array_length=${#activity[@]} # Store the length of the array
index=$(($RANDOM % $array_length)) # Randomly select an index from 0 to array_length

# Invite the user to join you participate in an activity
echo "Hi" $name, "would you like to play" ${activity[$index]}"?"
read -p "Answer: " answer

Demonstration des Skripts generate-activityshAbbildung2: Demonstration des Skripts generate-activity.sh.

Wie man eine Funktion in einem Bash-Skript erstellt

In der Programmierung werden Funktionen verwendet, um eine Reihe von wiederholten Anweisungen zu bündeln - erfahre mehr über Funktionen in Python. Der Zweck des Schreibens von Funktionen ist es, zu vermeiden, dass du ständig den gleichen Code schreibst, und es macht deinen Code außerdem lesbarer. 

Eine Bash-Funktion kann als typische Funktion betrachtet werden: ein Satz von Befehlen, der mehrmals aufgerufen werden kann. Allerdings sind Bash-Funktionen im Vergleich zu den meisten anderen Programmiersprachen etwas eingeschränkter (d.h. Bash-Funktionen erlauben es dir nicht, beim Aufruf einen Wert zurückzugeben). 

Bevor wir ein Bash-Skript mit einer Funktion erstellen, schauen wir uns die Syntax für die Deklaration einer Bash-Funktion an. Wir können eine Funktion definieren, indem wir einen Funktionsnamen schreiben, gefolgt von Klammern und geschweiften Klammern für den Körper der Funktion - das ist die gängigste Art, eine Bash-Funktion zu schreiben. So sieht es im Code aus: 

# Most common way to write a bash function.
example_function () {
  commands
{

Die andere Möglichkeit, eine Bash-Funktion zu formatieren, ist, die Zeile mit dem reservierten Bash-Schlüsselwort function zu beginnen, dann den Funktionsnamen und geschweifte Klammern für den Funktionskörper - die Klammern brauchen wir nicht. 

# Another way to write a bash function.
function example_function {
  commands
{

Wenn du die Funktion definierst, werden die Befehle nicht ausgeführt. Um eine Bash-Funktion aufzurufen, musst du den Funktionsnamen wie folgt aufrufen: 

#!/bin/bash

# A hello world bash function
hello_world () {
  echo "Hello World!"
}

# Invoking the hello_world function
hello_world

Oben haben wir eine hello_world-Funktion erstellt, die "Hello World!" ausgibt, wenn das Bash-Skript ausgeführt wird.

Übergabe von Argumenten an Bash-Funktionen

Argumente sind Variablen, die in einer bestimmten Funktion verwendet werden. In der Bash können wir keine Argumente an Funktionen übergeben, wie du es in höheren Programmiersprachen wie Python, Julia usw. tun würdest. Stattdessen haben Bash-Funktionen ein eigenes Kommandozeilenargument und wir können Parameter an eine Funktion übergeben, indem wir sie nach einem Aufruf des Funktionsnamens platzieren - getrennt durch ein Leerzeichen, wenn es mehrere Argumente gibt.

Im Wesentlichen werden die Funktionsargumente als Positionsparameter behandelt und Shell-Variablen ($1, $2, ..., $n) werden verwendet, um auf die an die Funktion übergebenen Argumente zuzugreifen. 

#!/bin/bash
greet () {
  echo "Hello $1 $2"
}

greet "John" "Doe" 

Im obigen Bash-Skript haben wir zwei Argumente, John und Doe, an unsere Begrüßungsfunktion übergeben. Wenn das Bash-Skript jetzt ausgeführt wird, sollten wir die folgende Ausgabe sehen:

Hello John Doe

Schreiben von "If"-Anweisungen in der Bash

"If"-Anweisungen sind bedingte Anweisungen, die in Programmiersprachen verwendet werden. Wenn sich eine Aussage als wahr erweist, wird eine Bedingung ausgeführt. Mit dieser Funktion können wir festlegen, unter welchen Umständen ein bestimmtes Stück Code ausgeführt werden soll. 

In der Bash beginnen wir die Bedingung mit einer if-Anweisung und beenden sie mit fi (if rückwärts buchstabiert). Hier ist ein Beispiel für ein Bash-Skript mit if-Bedingungen: 

#!/bin/bash

read -p "Give me a number: " number
if [ $number -gt 10 ];
then
  echo "Your number is greater than 10."
fi

Im obigen Bash-Skript wird der Benutzer aufgefordert, eine Nummer anzugeben. Wenn die vom Benutzer angegebene Zahl größer als 10 ist, wird "Deine Zahl ist größer als 10" auf dem Terminal ausgegeben, wenn nicht, wird das Programm beendet. Abbildung 3 ist ein Beispiel dafür, wie wir eine Zahl größer als 10 übergeben. 

if-Anweisungen in Bash-Skripten verwenden

Abbildung 3: Verwendung von "if"-Anweisungen in Bash-Skripten

Nachbereitung 

Bash-Skripte sind eine nützliche Methode, um Befehle elegant zusammenzufassen. Du kannst die Leistungsfähigkeit eines Bash-Skripts für eine Reihe von Anwendungsfällen nutzen, z. B. zum Ausführen eines Shell-Befehls, zum gemeinsamen Ausführen mehrerer Befehle, zum Anpassen von Verwaltungsaufgaben, zum Durchführen von Aufgabenautomatisierung und mehr. 

Wenn du die Schritte im obigen Tutorial befolgst, weißt du jetzt, wie du mit der Bash ein einfaches Skript erstellen kannst, das "Hello World!" ausgibt. 

Fähigkeiten im Bereich Machine Learning aufbauen

Bringe deine Fähigkeiten im maschinellen Lernen auf Produktionsniveau.
Themen

Bash Scripting Kurse

Kurs

Data Processing in Shell

4 hr
19.2K
Learn powerful command-line skills to download, process, and transform data, including machine learning pipeline.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

Mehr anzeigenMehr anzeigen