Lernen Sie, wie man ein einfaches Bash-Shell-Skript schreibt. Obwohl Shell-Skripte lange, kom­pli­zier­te Skripte sein können, die komplexe Aufgaben ausführen, können Sie auch lernen, wie man ein einfaches Shell-Skript in 10 Minuten schreibt. Wenn Sie Befehle auf der Be­fehls­zei­le ausführen können, ist es einfach zu lernen, wie man ein einfaches Bash-Skript schreibt.

An­for­de­run­gen

  • Ein Cloud Server unter Linux
  • Eine grund­le­gen­de Ver­traut­heit mit der Be­fehls­zei­le
Cloud Backup powered by Acronis
Mi­ni­mie­ren Sie Aus­fall­zei­ten mit unserem Kom­plett­schutz
  • Au­to­ma­tisch: Backups und Recovery
  • Intuitiv: Planung und Ma­nage­ment
  • In­tel­li­gent: KI-basierter Be­dro­hungs­schutz
  • Inkl. 300,- € Start­gut­ha­ben im 1. Monat

Erstellen der Datei

Gehen Sie in Ihr Home-Ver­zeich­nis:

cd
Hinweis

Die Ver­wen­dung von CD ohne Argumente führt Sie au­to­ma­tisch in Ihr Home-Ver­zeich­nis.

Erstellen Sie ein Ver­zeich­nis für Test­skrip­te:

mkdir myscripts

In dieses Ver­zeich­nis wechseln:

cd myscripts

In dieses Ver­zeich­nis wechseln:

nano hello

Die erste Zeile eines Shell-Skripts muss #! sein, gefolgt von dem Pfad zur Shell, die Sie für das Skript verwenden möchten.

Da wir dieses Skript für die Bash-Shell schreiben werden, wird die erste Zeile der Datei sein:

#!/bin/bash

Die erste Zeile eines Shell-Skripts muss #! sein, gefolgt von dem Pfad zur Shell, die Sie für das Skript verwenden möchten.

Da wir dieses Skript für die Bash-Shell schreiben werden, wird die erste Zeile der Datei sein:

# A test script

Fügen Sie die Befehle hinzu und machen Sie sie aus­führ­bar

Jeder Befehl, den Sie von der Be­fehls­zei­le aus ausführen, können Sie in ein Shell-Skript eingeben. Dies ist praktisch für:

  • Befehle, die Sie häufig verwenden.
  • Lange Befehle, ins­be­son­de­re solche, die viele Flags verwenden.
  • Befehle, die der Server au­to­ma­tisch als cron job.
  • Befehle, an die man sich nie ganz erinnern kann und die man jedes Mal nach­schla­gen muss.

Für dieses Beispiel verwenden wir einen Befehl, der die Worte "Hello world" auf der Kom­man­do­zei­le wie­der­gibt. Füge folgendes in die Datei ein:

echo "Hello world"

Speichern und beenden Sie die Datei.

Das Skript muss aus­führ­bar sein, damit es aus­ge­führt werden kann. Geben Sie dem Skript aus­führ­ba­re Be­rech­ti­gun­gen mit dem Befehl:

chmod 755 hello

Ausführen des Skripts

Um das Skript aus­zu­füh­ren, rufen Sie es einfach über seinen Dateipfad auf. Da Sie sich im selben Ver­zeich­nis wie das Skript befinden, können Sie es von hier aus ausführen, indem Sie es eingeben:

./hello

Sie können das Skript von überall auf dem Server ausführen, indem Sie den voll­stän­di­gen Dateipfad eingeben:

/home/[your username]/myscripts/hello

Füge das Skript zu deinem PFAD hinzu.

Im Gegensatz zu Ihrem Shell-Skript erfordern die meisten Linux-Befehle nicht, dass Sie den voll­stän­di­gen Dateipfad jedes Mal eingeben, wenn Sie sie ausführen möchten. Dies liegt daran, dass sich diese Skripte in Ihrem PATH befinden.

Der PFAD ist die Liste der Ver­zeich­nis­se, die die Shell bei jeder Eingabe auf einen Befehl überprüft. Du kannst deinen PATH mit dem Befehl sehen:

echo $PATH

Dies gibt die Liste der Ver­zeich­nis­se aus, die sich in Ihrem PATH befinden:

jdoe@localhost:~$ echo $PATH
/home/jdoe/bin:/home/jdoe/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Es gibt zwei Mög­lich­kei­ten, Ihr Shell-Skript zu Ihrem PATH hin­zu­zu­fü­gen:

1. Ver­schie­ben Sie das Shell-Skript in ein Ver­zeich­nis, das sich bereits in Ihrem PATH befindet.

Sie können das Shell-Skript in jedes der Ver­zeich­nis­se ver­schie­ben, die als Reaktion auf den echo $PATH-Befehl auf­ge­lis­tet sind. Die beste Vor­ge­hens­wei­se ist es, Ihre per­sön­li­chen Shell-Skripte in das Ver­zeich­nis /usr/local/bin zu legen:

sudo mv hello /usr/local/bin

Sie können das Skript dann von überall mit dem Befehl ausführen:

hello

2. Füge das Ver­zeich­nis des Shell-Skripts zu deinem PATH hinzu.

Du kannst mit dem Befehl ein be­lie­bi­ges Ver­zeich­nis zu deinem PATH hin­zu­fü­gen:

export PATH=$PATH:[path to directory]

Wenn der Benutzer jdoe bei­spiels­wei­se /home/jdoe/myscripts zum PATH hin­zu­fü­gen möchte, lautet der Befehl:

export PATH=$PATH:/home/jdoe/myscripts

Sie können das Skript dann von überall mit dem Befehl ausführen:

hello
vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Ver­wen­dung von Eingaben und Variablen

Ihre Skripte können Variablen verwenden, und Sie können den Benutzer zur Eingabe auf­for­dern. Dadurch entsteht ein in­ter­ak­ti­ves Skript, mit dem Sie ihm bei jeder Aus­füh­rung neue In­for­ma­tio­nen geben können.

Beginnen wir damit, eine neue Datei mit dem Namen greetme zu erstellen und sie zur Be­ar­bei­tung zu öffnen:

nano greetme

Stellen Sie wie bisher sicher, dass die erste Zeile des Skripts der Pfad zur Shell ist:

#!/bin/bash

Füge einen Kommentar hinzu:

# A simple script to experiment with user input

Die erste Zeile des Skripts ist das, was das Skript sagt, wenn Sie es aufrufen:

echo -e "Hello user, please tell me which state you live in: "
Hinweis

Wir verwenden dafür echo -e, da -e es dem Befehl erlaubt, Son­der­zei­chen zu ver­ar­bei­ten.

Die nächste Zeile weist das Skript an, Ihre Eingabe an einer Ein­ga­be­auf­for­de­rung zu ak­zep­tie­ren:

read state

Die letzte Zeile ist die Antwort des Skripts:

echo "I have heard that $state is lovely this time of year."

Das gesamte Skript lautet wie folgt:

#!/bin/bash
# A simple script to experiment with user input
echo -e "Hello user, please tell me which state you live in: "
read state
echo "I have heard that $state is lovely this time of year."

Speichern und beenden Sie die Datei. Dann mach es mit dem Befehl aus­führ­bar:

chmod 755 greetme

Sie können nun die Datei ausführen und die Er­geb­nis­se sehen:

jdoe@localhost:~/myscripts$ greetme
Hello user, please tell me which state you live in:
California
I have heard that California is lovely this time of year.
Zum Hauptmenü