Wie man ein einfaches Shell-Skript schreibt

Bei diesem Text handelt es sich um eine maschinell erstellte Übersetzung. Eine überarbeitete Version ist in Planung.

Einführung

Lernen Sie, wie man ein einfaches Bash-Shell-Skript schreibt. Obwohl Shell-Skripte lange, komplizierte 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 Befehlszeile ausführen können, ist es einfach zu lernen, wie man ein einfaches Bash-Skript schreibt.

Anforderungen

  • Ein Cloud Server unter Linux
  • Eine grundlegende Vertrautheit mit der Befehlszeile

Erstellen der Datei

Gehen Sie in Ihr Home-Verzeichnis:

cd

Hinweis: Die Verwendung von CD ohne Argumente führt Sie automatisch in Ihr Home-Verzeichnis.

Erstellen Sie ein Verzeichnis für Testskripte:

mkdir myscripts

In dieses Verzeichnis wechseln:

cd myscripts

In dieses Verzeichnis 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 ausführbar.

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

  • Befehle, die Sie häufig verwenden.
  • Lange Befehle, insbesondere solche, die viele Flags verwenden.
  • Befehle, die der Server automatisch als cron job.
  • Befehle, an die man sich nie ganz erinnern kann und die man jedes Mal nachschlagen muss.

Für dieses Beispiel verwenden wir einen Befehl, der die Worte "Hello world" auf der Kommandozeile wiedergibt. Füge folgendes in die Datei ein:

echo "Hello world"

Speichern und beenden Sie die Datei.

Das Skript muss ausführbar sein, damit es ausgeführt werden kann. Geben Sie dem Skript ausführbare Berechtigungen mit dem Befehl:

chmod 755 hello

Ausführen des Skripts

Um das Skript auszuführen, rufen Sie es einfach über seinen Dateipfad auf. Da Sie sich im selben Verzeichnis 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 vollständigen 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 vollständigen 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 Verzeichnisse, 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 Verzeichnisse 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öglichkeiten, Ihr Shell-Skript zu Ihrem PATH hinzuzufügen:

1. Verschieben Sie das Shell-Skript in ein Verzeichnis, das sich bereits in Ihrem PATH befindet.

Sie können das Shell-Skript in jedes der Verzeichnisse verschieben, die als Reaktion auf den echo $PATH-Befehl aufgelistet sind. Die beste Vorgehensweise ist es, Ihre persönlichen Shell-Skripte in das Verzeichnis /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 Verzeichnis des Shell-Skripts zu deinem PATH hinzu.

Du kannst mit dem Befehl ein beliebiges Verzeichnis zu deinem PATH hinzufügen:

export PATH=$PATH:[path to directory]

Wenn der Benutzer jdoe beispielsweise /home/jdoe/myscripts zum PATH hinzufü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

Verwendung von Eingaben und Variablen

Ihre Skripte können Variablen verwenden, und Sie können den Benutzer zur Eingabe auffordern. Dadurch entsteht ein interaktives Skript, mit dem Sie ihm bei jeder Ausführung neue Informationen geben können.

Beginnen wir damit, eine neue Datei mit dem Namen greetme zu erstellen und sie zur Bearbeitung 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, Sonderzeichen zu verarbeiten.

Die nächste Zeile weist das Skript an, Ihre Eingabe an einer Eingabeaufforderung zu akzeptieren:

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 ausführbar:

chmod 755 greetme

Sie können nun die Datei ausführen und die Ergebnisse 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.