Shell ist ein Befehlszeileninterpreter, der es dem Benutzer ermöglicht, mit dem System zu interagieren. Es ist dafür verantwortlich, Eingaben vom Benutzer entgegenzunehmen und die Ausgabe anzuzeigen.
Shell-Skripte sind eine Reihe von Befehlen, die in der Reihenfolge ihrer Ausführung geschrieben werden. Diese Skripte können Funktionen, Schleifen, Befehle, Variablen enthalten. Skripte machen es den Benutzern leicht, bestimmte Sequenzen von Codes zu speichern, die möglicherweise immer wieder verwendet werden. Shell-Skripte können auch Kommentare enthalten, um die Lesbarkeit zu verbessern.
Ein Shell-Skript muss mit der Erweiterung .sh gespeichert werden .
Damit das Linux-System weiß, dass es sich bei der Datei um ein Shell-Skript handelt, muss die Datei mit dem shebang beginnen konstruieren.
#!/bin/bash OR #!/bin/sh
Danach kann das Skript Befehle, Funktionen, Schleifen, Bedingungsprüfungen usw. enthalten.
Ein gutes Skript enthält immer Kommentare, die es lesbar machen.
Erstellen und Ausführen eines einfachen Shell-Skripts
Ein Shell-Skript kann mit vi, dem cat-Befehl oder dem normalen Texteditor in der GUI erstellt werden.
Lassen Sie uns ein einfaches Shell-Skript mit vi
erstellen$ vi basic_script.sh
Dadurch gelangen Sie zum vi-Editor. Fügen Sie die folgenden Zeilen hinzu:
#!/bin/bash whoami date
Dieses einfache Skript sollte den aktuellen Benutzer gefolgt vom Datum anzeigen.
So speichern und beenden Sie den vi-Editor:
- Drücken Sie ESC
- Geben Sie ein:
- Geben Sie „wq“ ein
- Drücken Sie die Eingabetaste
Standardmäßig erhält der Ersteller des Skripts keine Ausführungsberechtigung für die Datei.
Um das zu ändern:
$ chmod +x basic_script.sh
Dadurch erhalten Sie (aktueller Benutzer) die Berechtigung, die Datei auszuführen.
So führen Sie das Skript aus:
$ bash basic_script.sh
Die erste Ausgabezeile entspricht dem Befehl „whoami“ und die zweite Zeile dem Befehl „date“.
Eine andere Möglichkeit, das Skript auszuführen, ist:
$ ./basic_script.sh
Wenn Sie die Datei auf diese Weise ausführen, muss der Benutzer möglicherweise zuerst die Erlaubnis erteilen. Das Ausführen mit „bash“ erfordert keine Genehmigung.
Dasselbe Skript wird mit ‘bash’ ausgeführt davor, aber mit Berechtigungsproblemen, wenn versucht wird, direkt auszuführen. Der Grund dafür ist, dass der Befehl bash [Dateiname] benötigt nur Leserechte von der Datei.
Während der Befehl ./[Dateiname] die Datei als ausführbare Datei ausführt und daher die Berechtigung zum Ausführen erfordert. Diese Frage wurde ausführlich auf StackExchange beantwortet.
Im Allgemeinen ist es besser, eine Ausführungsberechtigung zu erteilen.
Variablen in Shell-Skripten verwenden
Skripte können benutzerdefinierte Variablen enthalten, da Skripte in der Tat umfangreich werden, ist es wichtig, klar definierte Variablen zu haben. Variablen, die ihrer Natur nach selbstbeschreibend sind, sind eine weitere Qualität eines guten Skripts.
Fügen Sie dem Skript die folgenden Zeilen hinzu:
#!/bin/bash #This is a comment #defining a variable GREETINGS="Hello! How are you" echo $GREETINGS
GRÜSSE ist die definierte Variable, auf die später mit „$“ zugegriffen wird.
In der Zeile, in der Variablen ein Wert zugewiesen wird, darf kein Leerzeichen vorhanden sein.
Lassen Sie uns das Skript ausführen:
Eingabe von der Kommandozeile lesen
Shell-Skripte können interaktiv gemacht werden, indem Eingaben von der Befehlszeile akzeptiert werden. Der Lesebefehl kann verwendet werden, um die Befehlszeileneingabe in einer Variablen zu speichern.
#!/bin/bash #This is a comment #defining a variable echo "What is your name?" #reading input read NAME #defining a variable GREETINGS="Hello! How are you" echo $NAME $GREETINGS
Eine Variable NAME wurde verwendet, um Eingaben von der Befehlszeile zu akzeptieren.
Beim Ausführen des Skripts :
Funktionen definieren
Benutzer können ihre eigenen Funktionen in einem Skript definieren. Diese Funktionen können mehrere Argumente annehmen.
Fügen Sie im Skript Folgendes hinzu:
#!/bin/bash #This is a comment #defining a variable echo "What is the name of the directory you want to create?" #reading input read NAME #defining a variable echo "Creating $NAME ..." mkcd () { mkdir "$NAME" cd "$NAME" } mkcd echo "You are now in $NAME"
Dieses Skript fragt den Benutzer nach einem Verzeichnisnamen. Es erstellt dann das Verzeichnis und cd hinein.
Schlussfolgerung
Wir haben gesehen, wie Skripte verwendet werden können, um Befehle in einer seriellen Reihenfolge auszuführen. Skripte helfen Benutzern, Redundanzen zu reduzieren und Zeit zu sparen. Skripte können auch von verschiedenen Benutzern geteilt werden.
Die Skripte, die wir in diesem Tutorial gesehen haben, waren recht einfach, Skripte können auch für die Ausführung komplexer Aufgaben entwickelt werden. Weitere Informationen zum Skripting finden Sie hier.