|
Deuxième partie cette mini-tutoriel programmation en Frapper, où nous apprenons à utiliser des cycles et d'autres outils qui nous aideront à améliorer les fonctionnalités de notre scripts. |
Le conditionnel If
La fonction de If est d'appliquer un filtre et d'effectuer une opération ou une tâche pour chaque type de filtre appliqué. Sa structure est la suivante:
Si [condition]; puis commandes elif [condition]; alors les commandes else; commandes fi
Un exemple est présenté à côté de la boucle For dans sa section respective.
Cycles
1. Boucle While : Cette boucle exécutera toutes les commandes spécifiées entre « do » et « done » tant que la condition est vraie. Pour utiliser des opérateurs de comparaison, l’expression doit être placée entre crochets.
pendant que CONDITION / COMMAND effectue les commandes
Exemple: table de multiplication d'un nombre
#! / bin / bash X = 1 echo "Entrez un nombre et appuyez sur ENTREE" read M # La boucle contrôle que X est inférieur ou égal à 10 tandis que [$ X –le 10] fait #In R nous stockons la multiplication de X par MR = $ [X * M] # Cette multiplication est imprimée à l'écran echo "$ M * $ X = $ R" #Avec let, on augmente la valeur de X de 1 unité soit X = $ X + 1 fait
2. Pour : stocke une liste d'éléments dans une variable, qui sera utilisée pour effectuer certaines opérations à chaque itération de la boucle.
pour VARIABLE dans ELEMENTS faire les commandes faites
Exemple: programme qui copie un fichier d'un dossier à un autre, en remplaçant un ancien fichier.
# / bin / bash #Nous établissons les répertoires source et destination ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Nous nous positionnons dans le cd source $ ORIGIN #De tous les fichiers, nous ne voulons que celui qui est # appeler FILE pour FILE dans * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f nous filtre les fichiers normaux, puisque les répertoires ne sont # rien de bon pour nous. –Ne filtre pas # fichiers «plus récents» que ceux # trouvés dans le dossier de destination si [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; puis echo "Copie de $ FILE ..." # nous copions le fichier avec cp cp $ FILE $ ARCH-DESTINATION fi done #Nous cd pour quitter le dossier source cd
Autre exemple: script où l'utilisateur doit deviner un nombre aléatoire généré par l'ordinateur.
# / bin / bash #Un nombre aléatoire est généré de 1 à 10, il est # enregistré dans RANDOM RANDOM = $ [$ RANDOM% 10 + 1] tandis que [1] do echo –n "Entrez un nombre:" lisez NUM # Comparez si le nombre choisi par l'utilisateur est #égal à RANDOM; n'oubliez pas d'utiliser $ pour évaluer les #valeurs des variables et non leurs noms si [“$ NUM –eq“ $ RANDOM ”]; puis echo "Vous avez raison!" #break permet de terminer la boucle pendant la pause #Si le nombre est inférieur à RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; then echo "C'est moins" "Sinon, c'est plus grand que RANDOM sinon echo" EST plus grand "fi done
3. Until : structure assez similaire à While, sauf que le code s'exécute toujours tant que la condition est évaluée négativement, c'est-à-dire que le programme continue de s'exécuter « jusqu'à ce que la condition se produise ».
jusqu'à ce que CONDITION / COMMAND effectue les commandes
Exemple: imprimez les nombres 10-20 dans l'ordre décroissant
#! / bin / bash CONT = 20 # Tant que le compteur est inférieur à 10 (-lt, «inférieur # à») le code est exécuté jusqu'à [$ CONT -lt 10]; do echo "COUNTER $ CONT" #A CONT est soustrait d'une unité soit CONT- = 1 done
4. Sélection : Cette dernière boucle est un cas particulier, car elle est généralement utilisée pour créer rapidement des menus. Son fonctionnement est similaire à celui de la boucle For.
sélectionnez VARIABLE dans la LISTE des commandes effectuées
Exemple: donnez à l'utilisateur la possibilité de continuer ou de terminer le script.
#! / bin / bash #item est une variable qui répond à ce que #user choisit, Continuer et Terminer sont les #options disponibles pour lui, bien que d'autres options puissent être ajoutées terminer le programme, puis avec pause nous sortons du cycle. if [$ item = "Terminer"]; puis break fi done