Das Erlernen einer neuen Programmiersprache kann Spaß machen. Wenn ich versuche, eine neue Sprache zu lernen, konzentriere ich mich auf die Definition von Variablen, das Schreiben einer Anweisung und die Auswertung von Ausdrücken. Wenn ich diese Konzepte erst einmal verstanden habe, kann ich mir den Rest normalerweise selbst erschließen. Die meisten Programmiersprachen haben einige Gemeinsamkeiten, so dass man, sobald man eine Programmiersprache beherrscht, die nächste lernen muss, um die einzigartigen Details herauszufinden und die Unterschiede zu erkennen.

Um eine neue Programmiersprache zu üben, schreibe ich gerne ein paar Testprogramme. Ein Beispielprogramm, das ich oft schreibe, ist ein einfaches „Rate die Zahl“-Programm, bei dem der Computer eine Zahl zwischen eins und 100 auswählt und mich auffordert, die Zahl zu raten. Das Programm läuft in einer Schleife, bis ich die richtige Zahl errate.

Das „Rate die Zahl“-Programm übt verschiedene Konzepte in Programmiersprachen: wie man Variablen Werte zuweist, wie man Anweisungen schreibt und wie man bedingte Auswertungen und Schleifen durchführt. Es ist ein großartiges praktisches Experiment, um eine neue Programmiersprache zu lernen.

Errate die Zahl in Bash

Bash ist die Standard-Shell für die meisten Linux-Systeme. Bash bietet nicht nur eine reichhaltige Befehlszeilen-Benutzeroberfläche, sondern unterstützt auch eine komplette Programmiersprache in Form von Skripten.

Wenn Sie mit Bash nicht vertraut sind, empfehle ich diese Einführungen:

  • Was ist Bash?
  • Einstieg in die Bash-Programmierung
  • Einstieg in die Bash-Skripterstellung für Systemadministratoren
  • Wie man Funktionen in der Bash schreibt
  • Lesen Sie mehr über Bash

Sie können die Bash erkunden, indem Sie eine Version des Spiels „Errate die Zahl“ schreiben. Hier ist meine Implementierung:

Das Skript aufschlüsseln

Die erste Zeile im Skript, #!/bin/bash, weist Linux an, dieses Skript mit der Bash-Shell auszuführen. Jedes Skript beginnt mit dem Zeichenpaar #!, das anzeigt, dass es sich um ein Shell-Skript handelt. Was unmittelbar auf #! folgt, ist die Shell, die ausgeführt werden soll. In diesem Fall ist /bin/bash die Bash-Shell.

Um einer Variablen einen Wert zuzuweisen, geben Sie den Variablennamen gefolgt von dem Zeichen = an. Zum Beispiel weist die Anweisung guess=0 der Variablen guess den Wert Null zu.

Sie können den Benutzer auch mit der Anweisung read zur Eingabe eines Wertes auffordern. Wenn Sie read guess schreiben, wartet die Bash darauf, dass der Benutzer einen Text eingibt, und speichert diesen Wert dann in der Variablen guess.

Um auf den Wert einer Variablen zu verweisen, verwenden Sie $ vor dem Variablennamen. Nachdem Sie also einen Wert in der Variablen guess gespeichert haben, können Sie ihn mit $guess abrufen.

Sie können beliebige Namen für Variablen verwenden, aber Bash reserviert einige spezielle Variablennamen für sich. Eine besondere Variable ist RANDOM, die jedes Mal, wenn Sie auf sie verweisen, eine sehr große Zufallszahl generiert.

Wenn Sie gleichzeitig mit dem Speichern eines Wertes eine Operation durchführen wollen, müssen Sie die Anweisung in spezielle Klammern einschließen. Dadurch wird die Bash angewiesen, diese Anweisung zuerst auszuführen, und = speichert den resultierenden Wert in der Variablen. Um einen mathematischen Ausdruck auszuwerten, verwenden Sie $(( )) um Ihre Anweisung herum. Die doppelten Klammern stehen für einen arithmetischen Ausdruck. In meinem Beispiel wertet number=$(( $RANDOM % 100 + 1 )) den Ausdruck $RANDOM % 100 + 1 aus und speichert den Wert in der Variablen number.

Es gelten die üblichen arithmetischen Operatoren wie + (plus), - (minus), * (multiplizieren), / (dividieren) und % (modulieren).

Das bedeutet, dass die Anweisung number=$(( $RANDOM % 100 + 1 )) eine Zufallszahl zwischen 1 und 100 erzeugt. Der Modulo-Operator (%) gibt den Rest nach der Division von zwei Zahlen zurück. In diesem Fall dividiert die Bash eine Zufallszahl durch 100, so dass ein Rest im Bereich von null bis 99 übrig bleibt. Wenn man zu diesem Wert eins addiert, erhält man eine Zufallszahl zwischen eins und 100.

Die Bash unterstützt bedingte Ausdrücke und Flusskontrolle wie Schleifen. Beim Spiel „Errate die Zahl“ fährt die Bash so lange mit der Schleife fort, wie der Wert in guess nicht gleich number ist. Wenn der Schätzwert kleiner als die Zufallszahl ist, gibt Bash „Zu niedrig“ aus, und wenn der Schätzwert größer als die Zahl ist, gibt Bash „Zu hoch“ aus.

Wie es funktioniert

Nachdem Sie Ihr Bash-Skript geschrieben haben, können Sie es ausführen, um das Spiel „Rate die Zahl“ zu spielen. Raten Sie so lange, bis Sie die richtige Zahl gefunden haben:

Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!

Jedes Mal, wenn Sie das Skript ausführen, wählt die Bash eine andere Zufallszahl aus.

Dieses „Rate die Zahl“-Spiel ist ein großartiges Einführungsprogramm zum Erlernen einer neuen Programmiersprache, da es mehrere gängige Programmierkonzepte auf recht einfache Weise trainiert. Indem Sie dieses einfache Spiel in verschiedenen Programmiersprachen implementieren, können Sie einige Kernkonzepte demonstrieren und Details in jeder Sprache vergleichen.

Haben Sie eine Lieblings-Programmiersprache? Wie würden Sie das Spiel „Errate die Zahl“ in dieser Sprache schreiben? Folgen Sie dieser Artikelserie, um Beispiele für andere Programmiersprachen zu sehen, die Sie interessieren könnten.