Für den Anfang - lassen Sie uns diese Schlagzeile klären. Linux hat mehr als eine mögliche Shell, und das Erstellen eines Skripts ist ein Thema, das ein ganzes Buch leicht packen kann. Was wir tun werden, umfasst die grundlegenden Elemente eines Bash- Skripts. Wenn Sie nicht wissen, welche Shell Sie verwenden, ist es wahrscheinlich Bash . Der Prozess wird jedem bekannt sein, der mit den Bat- Dateien von DOS gearbeitet hat, es ist im Wesentlichen das gleiche Konzept. Sie fügen einfach eine Reihe von Befehlen in eine Textdatei ein und führen sie aus. Der Unterschied kommt von der Tatsache, dass Bash-Skripte viel mehr als Batch-Dateien machen können. In der Tat ist bash scripting nicht weit von einer vollwertigen Sprache wie Python entfernt. Heute werden wir ein paar Grundlagen wie Eingabe, Ausgabe, Argumente und Variablen behandeln.

Hinweis : Wenn wir wirklich technisch werden wollen, ist Bash keine reine Linux-Shell. Viele (wenn auch möglicherweise nicht alle) der Folgenden beziehen sich auf ein UNIX-System, einschließlich Mac OSX und BSDs.

Hallo Welt

Es ist Tradition, eine neue "Sprache" zu beginnen, indem ein einfaches Skript erstellt wird, um die Wörter "Hallo Welt!" Auszugeben. Das ist einfach, öffnen Sie einfach Ihren bevorzugten Texteditor und geben Sie Folgendes ein:

 #! / bin / bash echo Hallo Welt! 

Mit nur zwei Zeilen könnte es nicht viel einfacher sein, aber die erste Zeile, #! / Bin / bash, ist vielleicht nicht sofort offensichtlich. Die ersten zwei Zeichen (oft als Hashbang bezeichnet) sind ein spezielles Signal. Es teilt Linux mit, dass dieses Skript über die / bin / bash-Shell ausgeführt werden sollte, im Gegensatz zur C-Shell oder Korn-Shell oder etwas anderem, das Sie möglicherweise installiert haben. Ohne Linux ist es für Linux nicht einfach, genau zu sagen, um was für ein Shell-Skript es sich handelt. Ein Python-Skript zum Beispiel würde wahrscheinlich mit etwas wie #! / Usr / bin / python beginnen .

Danach ist nur noch die echo- Anweisung, die die Wörter nach dem Terminal ausgibt (technisch zur Standardausgabe ).

Ausführen Ihres Skripts

Wie es bei Linux oft der Fall ist, gibt es mehrere Möglichkeiten, diese Aufgabe zu erledigen. Der einfachste Weg wäre, bash manuell aufzurufen und ihm die Skriptdatei zu geben, wie in

 #Dateiname kann alles sein, .sh ist eine gängige Praxis für Shell-Skripte. Bash myscript.sh 

Clevere Leser denken vielleicht: " Aber warte, haben wir das Hashbang-Ding nicht reingebracht, damit es Bash benutzen kann? Warum musste ich bash manuell ausführen? "Und die Antwort ist" Du hast es nicht ". Zumindest hätten Sie nicht, wenn wir einen Moment gebraucht hätten, um das Skript eigenständig ausführbar zu machen.

Im vorherigen Beispiel haben wir bash gestartet und ihm das Skript gesendet. Jetzt sparen wir uns etwas Zeit für die Zukunft, indem wir das Skript ausführbar machen, so dass wir die bash nicht manuell ausführen müssen. Das ist so einfach wie ein einzelner Befehl.

 chmod + x meinskript.sh 

Und jetzt kann es direkt mit dem Dateinamen ausgeführt werden.

Variablen und Argumente

Variablen in bash können etwas verwirrender sein als einige andere Skriptsprachen, teilweise weil sie manchmal mit einem $ -Zeichen und manchmal nicht vorangestellt werden müssen - je nachdem, was Sie tun. Nehmen Sie das folgende Beispiel.

 PATH = $ PFAD: / home / josh / scripts 

Wir beziehen uns zweimal auf dieselbe Variable, PATH. Einmal gibt es kein $, aber das andere Mal ist es. Es gibt einige Möglichkeiten, an die Sie sich erinnern können, wenn ein $ angemessen ist, aber dieser Autor verwendet eine "sprechende" Metapher. Wenn ich mit der Variablen spreche (z. B. einen neuen Wert zuweisen), rufe ich sie mit dem Kurznamen auf, in diesem Fall PATH. Wenn ich über eine Variable spreche (z. B. über den aktuellen Wert), erhält sie einen formelleren Titel ($ PATH). Die genaue Argumentation und die innere Funktionsweise dieses Entwurfs gehen über den Rahmen dieses Handbuchs hinaus. Versuchen Sie daher, sich daran zu erinnern, dass Sie ein $ einbeziehen müssen, wenn Sie versuchen, die Informationen in einer Variablen abzurufen.

Jetzt werden wir eine Variable in unserem Skript verwenden. Ändern Sie die zweite Zeile so, dass sie wie folgt aussieht:

 #! / bin / bash echo Hallo $ 1! 

Und führen Sie Ihr Skript erneut aus, aber geben Sie diesmal Ihren Namen nach dem Skriptnamen ein.

Bash weist automatisch bestimmte Variablen zu, darunter einige wie $ 1, $ 2 usw., die jedes der Argumente enthalten, die an das Skript übergeben werden. Variablen können beliebig neu zugewiesen und umbenannt werden, sodass Sie das vorherige Skript als neu schreiben können

 #! / bin / bash Vorname = $ 1 Nachname = $ 2 Echo Hallo $ Vorname $ Nachname! 

Wie Sie sehen, gibt es keine $ -Zeichen, wenn Sie der Variable den Wert zuweisen, aber Sie benötigen sie, wenn Sie die Informationen herausziehen.

Bedingungen und Schleifen

Kein Skript könnte ohne die Fähigkeit, Daten zu analysieren oder zu durchlaufen, sehr weit kommen. Die gebräuchlichste Methode zur Bestimmung einer Vorgehensweise ist die Verwendung der if-Anweisung. Es funktioniert so, wie du es erwartest - wenn etwas DANN Sachen macht, SONST etwas anderes machen. In diesem Beispiel wird die Zeichenkette, die wir in der Variablen firstname gespeichert haben, verglichen und mit einem fest codierten Text verglichen. Wenn sie übereinstimmen, wird eine spezielle Ausgabe gedruckt. Ansonsten geht es wie gewohnt weiter.

 #! / bin / bash Vorname = $ 1 Nachname = $ 2 wenn ["$ Vorname" == "Josh"] dann echo "Was für ein toller Name" sonst echo Hallo $ Vorname $ Nachname! fi 

Schließlich ist die nächste Kernkomponente die Fähigkeit von bash, Daten zu durchlaufen. Die normalen Schleifenmechanismen für bash sind FOR, WHILE und UNTIL. Wir fangen mit, während es am einfachsten ist.

 #! / bin / bash counter = 0 #Wenn der Counter kleiner als 10 ist, loopen Sie solange [$ counter -lt 50]; do echo $ counter let counter = Zähler + 1 erledigt 

Dieses Beispiel erstellt eine Zählervariable, beginnt eine while- Schleife und setzt die Schleife fort (und addiert eine zum Zähler), bis das Limit erreicht ist, in diesem Fall 50. Alles nach der done- Anweisung wird ausgeführt, sobald die Schleife abgeschlossen ist.

UNTIL funktioniert ähnlich, aber umgekehrt wie WHILE. Eine while-Schleife wird fortgesetzt, solange der Ausdruck wahr ist (Zähler kleiner als 50). Die up-Schleife nimmt den entgegengesetzten Ansatz und würde als geschrieben werden

 bis [$ counter -gt 50]; machen 

In diesem Beispiel haben "während weniger als 50" und "bis mehr als 50" fast identische Ergebnisse (der Unterschied ist, dass der eine die Zahl 50 selbst enthält und der andere nicht. Probieren Sie es selbst aus, um zu sehen, welcher, und warum.)

Fazit

Wie oben erwähnt, würde es viel mehr als einen einzigen Getting Started-Artikel erfordern, um die Leistungsfähigkeit von Bash-Scripting vollständig zu demonstrieren. Die hier gezeigten Arbeiten können als Kernbestandteile der Funktionsweise von bash angesehen werden und sollten ausreichen, um Ihnen die grundlegenden Prinzipien von Shell-Skripten unter Linux zu zeigen. Wenn Sie wirklich in den Mut kommen und einige großartige Skripte erstellen möchten, schauen Sie sich hier das offizielle Bash-Referenzhandbuch von GNU an. Viel Spaß beim Schreiben!