Apprendre un nouveau langage de programmation peut être amusant. Chaque fois que j’essaie d’en apprendre un nouveau, je me concentre sur la définition des variables, l’écriture d’une déclaration et l’évaluation des expressions. Une fois que j’ai une compréhension générale de ces concepts, je peux généralement comprendre le reste par moi-même. La plupart des langages de programmation ont certaines similitudes, donc une fois que vous connaissez un langage de programmation, l’apprentissage du prochain est une question de comprendre les détails uniques et de reconnaître les différences de celui-ci.

Pour m’aider à pratiquer un nouveau langage de programmation, j’aime écrire quelques programmes de test. Un exemple de programme que j’écris souvent est un simple programme « devinez le nombre », où l’ordinateur choisit un nombre entre un et 100 et me demande de deviner le nombre. Le programme boucle jusqu’à ce que je devine correctement.

Le programme « devinez le nombre » exerce plusieurs concepts des langages de programmation : comment attribuer des valeurs aux variables, comment écrire des déclarations, et comment effectuer une évaluation conditionnelle et des boucles. C’est une excellente expérience pratique pour apprendre un nouveau langage de programmation.

Devinez le nombre en Bash

Bash est le shell standard de la plupart des systèmes Linux. En plus de fournir une riche interface utilisateur en ligne de commande, Bash supporte également un langage de programmation complet sous la forme de scripts.

Si vous n’êtes pas familier avec Bash, je vous recommande ces introductions :

  • Qu’est-ce que Bash ?
  • Débuter avec la programmation Bash
  • Débuter avec les scripts Bash pour les sysadmins
  • Comment écrire des fonctions dans Bash
  • Lire plus sur Bash

Vous pouvez explorer Bash en écrivant une version du jeu « devinez le nombre ». Voici mon implémentation:

Décomposer le script

La première ligne du script, #!/bin/bash indique à Linux d’exécuter ce script en utilisant le shell Bash. Chaque script commence par la paire de caractères #!, ce qui indique qu’il s’agit d’un script shell. Ce qui suit immédiatement #! est le shell à exécuter. Dans ce cas, /bin/bash est le shell Bash.

Pour attribuer une valeur à une variable, énumérez le nom de la variable suivi du signe =. Par exemple, l’instruction guess=0 attribue une valeur nulle à la variable guess.

Vous pouvez également inviter l’utilisateur à saisir une valeur en utilisant l’instruction read. Si vous écrivez read guess, Bash attend que l’utilisateur entre du texte puis stocke cette valeur dans la variable guess.

Pour référencer la valeur d’une variable, utilisez $ devant le nom de la variable. Ainsi, ayant stocké une valeur dans la variable guess, vous pouvez la récupérer en utilisant $guess.

Vous pouvez utiliser les noms que vous voulez pour les variables, mais Bash se réserve quelques noms de variables spéciales. Une variable spéciale est RANDOM, qui génère un très grand nombre aléatoire chaque fois que vous la référencez.

Si vous voulez effectuer une opération en même temps que vous stockez une valeur, vous devez mettre l’instruction entre des parenthèses spéciales. Cela indique à Bash d’exécuter cette instruction en premier, et le = stocke la valeur résultante dans la variable. Pour évaluer une expression mathématique, utilisez $(( )) autour de votre déclaration. Les doubles parenthèses indiquent une expression arithmétique. Dans mon exemple, number=$(( $RANDOM % 100 + 1 )) évalue l’expression $RANDOM % 100 + 1 et stocke ensuite la valeur dans la variable number.

Les opérateurs arithmétiques standard tels que + (plus), - (moins), * (multiplier), / (diviser) et % (modulo) s’appliquent.

Cela signifie que l’instruction number=$(( $RANDOM % 100 + 1 )) génère un nombre aléatoire entre un et 100. L’opérateur modulo (%) renvoie le reste après avoir divisé deux nombres. Dans ce cas, Bash divise un nombre aléatoire par 100, laissant un reste compris entre zéro et 99. En ajoutant un à cette valeur, vous obtenez un nombre aléatoire compris entre un et 100.

Bash prend en charge les expressions conditionnelles et le contrôle de flux comme les boucles. Dans le jeu « devinez le nombre », Bash continue la boucle tant que la valeur dans guess n’est pas égale à number. Si la supposition est inférieure au nombre aléatoire, Bash imprime « Trop faible », et si la supposition est supérieure au nombre, Bash imprime « Trop élevé. »

Comment ça marche

Maintenant que vous avez écrit votre script Bash, vous pouvez l’exécuter pour jouer au jeu « devinez le nombre ». Continuez à deviner jusqu’à ce que vous trouviez le bon numéro:

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!

Chaque fois que vous exécutez le script, Bash choisira un numéro aléatoire différent.

Ce jeu « devinez le numéro » est un excellent programme d’introduction lors de l’apprentissage d’un nouveau langage de programmation car il exerce plusieurs concepts de programmation communs d’une manière assez simple. En mettant en œuvre ce jeu simple dans différents langages de programmation, vous pouvez démontrer certains concepts de base et comparer les détails dans chaque langage.

Avez-vous un langage de programmation préféré ? Comment écririez-vous le jeu « devinez le nombre » dans celui-ci ? Suivez cette série d’articles pour voir des exemples d’autres langages de programmation qui pourraient vous intéresser.