Programmation en bash - partie 2

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
Merci Juan Carlos Ortiz!

Ajouter comme source préférée dans Google