Een nieuwe programmeertaal leren kan leuk zijn. Als ik een nieuwe taal probeer te leren, richt ik me op het definiëren van variabelen, het schrijven van een statement en het evalueren van expressies. Als ik eenmaal een algemeen begrip heb van die concepten, kan ik de rest meestal zelf wel uitvogelen. De meeste programmeertalen hebben een aantal overeenkomsten, dus als je eenmaal een programmeertaal kent, is het leren van de volgende een kwestie van het uitzoeken van de unieke details en het herkennen van de verschillen daarin.

Om me te helpen een nieuwe programmeertaal te oefenen, schrijf ik graag een paar testprogramma’s. Een voorbeeldprogramma dat ik vaak schrijf is een eenvoudig “raad het getal”-programma, waarbij de computer een getal tussen 1 en 100 kiest en mij vraagt het getal te raden. Het programma loopt net zolang totdat ik het goed heb geraden.

Het “raad het getal”-programma oefent verschillende concepten in programmeertalen: hoe wijs je waarden toe aan variabelen, hoe schrijf je statements, en hoe voer je conditionele evaluatie en loops uit. Het is een geweldig praktisch experiment om een nieuwe programmeertaal te leren.

Raad het getal in Bash

Bash is de standaard shell voor de meeste Linux systemen. Naast het bieden van een rijke command-line gebruikersinterface, ondersteunt Bash ook een complete programmeertaal in de vorm van scripts.

Als u niet bekend bent met Bash, raad ik deze introducties aan:

  • Wat is Bash?
  • Ga aan de slag met Bash programmeren
  • Ga aan de slag met Bash scripting voor sysadmins
  • Hoe schrijf je functies in Bash
  • Lees meer over Bash

Je kunt Bash verkennen door een versie van het “raad het getal”-spel te schrijven. Hier is mijn implementatie:

Het script afbreken

De eerste regel in het script, #!/bin/bash vertelt Linux om dit script uit te voeren met de Bash shell. Elk script begint met het tekenpaar #!, dat aangeeft dat dit een shellscript is. Wat onmiddellijk volgt op #! is de shell die moet worden uitgevoerd. In dit geval is /bin/bash de Bash-shell.

Om een waarde aan een variabele toe te kennen, noemt u de naam van de variabele gevolgd door het teken =. Bijvoorbeeld, de verklaring guess=0 wijst een waarde van nul toe aan de variabele guess.

U kunt de gebruiker ook vragen een waarde in te voeren met de verklaring read. Als u read guess schrijft, wacht Bash tot de gebruiker wat tekst invoert en slaat die waarde op in de variabele guess.

Om naar de waarde van een variabele te verwijzen, gebruikt u $ voor de naam van de variabele. Dus, als u een waarde heeft opgeslagen in de guess variabele, kunt u deze opvragen met $guess.

U kunt elke naam gebruiken die u wilt voor variabelen, maar Bash reserveert een paar speciale variabele namen voor zichzelf. Een speciale variabele is RANDOM, die een zeer groot willekeurig getal genereert elke keer dat u ernaar verwijst.

Als u een bewerking wilt uitvoeren op hetzelfde moment dat u een waarde opslaat, moet u het statement tussen speciale haakjes plaatsen. Dit vertelt Bash om die bewerking eerst uit te voeren, en de = slaat de resulterende waarde op in de variabele. Als u een wiskundige uitdrukking wilt evalueren, gebruikt u $(( )) rond uw verklaring. De dubbele haakjes geven een rekenkundige uitdrukking aan. In mijn voorbeeld evalueert number=$(( $RANDOM % 100 + 1 )) de uitdrukking $RANDOM % 100 + 1 en slaat de waarde op in de variabele number.

Standaard rekenkundige operatoren zoals + (plus), - (min), * (vermenigvuldigen), / (delen), en % (modulo) zijn van toepassing.

Dat betekent dat het statement number=$(( $RANDOM % 100 + 1 )) een willekeurig getal genereert tussen één en 100. De modulo-operator (%) geeft het restant na het delen van twee getallen. In dit geval deelt Bash een willekeurig getal door 100, waardoor een rest overblijft in het bereik van nul tot 99. Door één bij die waarde op te tellen, krijgt u een willekeurig getal tussen één en 100.

Bash ondersteunt voorwaardelijke expressies en flow control zoals lussen. In het spelletje “raad het getal”, blijft Bash doorlussen zolang de waarde in guess niet gelijk is aan number. Als het geraden getal lager is dan het willekeurige getal, drukt Bash “Te laag” af, en als het geraden getal hoger is dan het getal, drukt Bash “Te hoog” af.”

Hoe het werkt

Nu u uw Bash-script hebt geschreven, kunt u het uitvoeren om het “raad het getal”-spel te spelen. Blijf raden tot u het juiste getal vindt:

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!

Elke keer dat u het script uitvoert, kiest Bash een ander willekeurig getal.

Dit “raad het getal”-spel is een geweldig inleidend programma wanneer u een nieuwe programmeertaal leert, omdat het verschillende veelgebruikte programmeerconcepten op een vrij eenvoudige manier oefent. Door dit eenvoudige spel in verschillende programmeertalen te implementeren, kun je een aantal kernbegrippen demonstreren en de details in elke taal vergelijken.

Heb je een favoriete programmeertaal? Hoe zou jij het “raad het getal” spel daarin schrijven? Volg deze artikelreeks om voorbeelden te zien van andere programmeertalen die je misschien interesseren.