Comment écrire des fonctions et des boucles dans Bash?

Le moyen le plus simple de réduire la quantité de code que vous devez écrire dans un programme
Le moyen le plus simple de réduire la quantité de code que vous devez écrire dans un programme est de trouver des moyens de réutiliser le code.

Le script shell Bash est un langage CLI ( Command Line Interface) puissant et polyvalent. Le moyen le plus simple de réduire la quantité de code que vous devez écrire dans un programme est de trouver des moyens de réutiliser le code. Les boucles et les fonctions sont deux façons d'y parvenir. Comme dans n'importe quel langage, plus vous connaissez la syntaxe (ou où trouver la syntaxe), mieux vous serez à l'écriture du code. Le code fourni dans cet article est un programme exécutable qui s'exécutera sous UNIX, Linux ou Mac OS X ou supérieur. Cet article démarre sous Linux à l'invite de commande.

Pas

  1. 1
    Accédez à Linux et ouvrez une fenêtre de terminal. Tapez la commande suivante à l'invite de commande: vi FunLoop.sh. Cela créera le fichier que vous allez utiliser comme fichier de script et l'ouvrira pour l'édition.
  2. 2
    Entrez l'instruction shell sur la première ligne du fichier. Chaque script shell en a besoin pour lui indiquer dans quel shell s'exécuter. Tapez #!/bin/bash.
  3. 3
    Créez les variables dont vous aurez besoin pour ce script. Vous en aurez besoin d'un pour capturer le choix saisi par l'utilisateur et d'un autre pour définir le répertoire en fonction du choix de l'utilisateur. Tapez directory=""et choice=0.
  4. 4
    Créez votre première fonction. C'est un code simple et son nom est sensible à la casse. Nommez-le menuList. Tout ce qui se trouve entre les crochets d'ouverture et de fermeture est le code que vous souhaitez.
    Cela créera le fichier que vous allez utiliser comme fichier de script
    Cela créera le fichier que vous allez utiliser comme fichier de script et l'ouvrira pour l'édition.
  5. 5
    Tapez le nom et les parenthèses sur la première ligne après les variables. Il devrait ressembler à: menuList().
  6. 6
    Tapez un crochet ouvrant sur une autre ligne par lui-même {.
  7. 7
    Tapez la commande pour effacer l'écran sur une ligne par lui-même. Il devrait ressembler à ceci: clear.
  8. 8
    Tapez les instructions d'écho qui composent le menu.
    echo "1. Lancez ls sur mon répertoire personnel." echo "2. Exécutez ls sur le répertoire racine." echo "3. Exécutez ls sur le répertoire bin." echo "4. Quitter le programme." 
  9. 9
    Tapez un crochet fermant sur une autre ligne par lui-même }.
  10. 10
    Créez une fonction pour exécuter la lscommande.
  11. 11
    Tapez le nom et les parenthèses sur la première ligne après les variables. Vous devriez ajouter runLS().
  12. 12
    Tapez un crochet ouvrant sur une autre ligne par lui-même {.
  13. 13
    Tapez la commande pour exécuter le ls. ls -la $directoryoù $ directory est celui spécifié par le choix de menu.
  14. 14
    Tapez un crochet fermant sur une autre ligne par lui-même }.
  15. 15
    Créez la boucle et les instructions if pour exécuter vos fonctions.
  16. 16
    Créez l'instruction while avec le mot while suivi d'une instruction conditionnelle. while [$choice -ne 4]. Où $choiceest l'entrée de l'utilisateur et 4est l'élément de menu pour dire au programme de fermer, -neest un opérateur conditionnel utilisé dans les scripts de shell bash pour l'évaluation des nombres.
  17. 17
    Continuez l'instruction while avec le mot-clé do. Tapez do.
  18. 18
    Vient ensuite le code que vous souhaitez exécuter à chaque fois que la boucle while s'exécute. Vous avez quatre éléments de menu, vous aurez donc besoin de quatre ifinstructions et d'un fourre-tout pour les valeurs qui ne répondent pas aux exigences des éléments de menu. Écrivez l'instruction if comme suit:
    if [$ choice -eq 1] then $ directory = "~ /" runLS elif [$ choice -eq 2] then $ directory = "/" runLS elif [$ choice -eq 3] puis $ directory = "/ bin" runLS elif [$ choice -eq 4] then clear echo "Merci d'utiliser les fichiers de liste" sleep 3 exit else echo "Choix invalide, veuillez réessayer" fi done 
    D'un autre pour définir le répertoire en fonction du choix de l'utilisateur
    Vous en aurez besoin d'un pour capturer le choix saisi par l'utilisateur et d'un autre pour définir le répertoire en fonction du choix de l'utilisateur.
  19. 19
    Enregistrez et quittez le fichier en tapant: Esc, :x.
  20. 20
    Exécutez chmod pour autoriser le fichier à être exécutable. Tapez: chmod u+x FunLoop.sh.
  21. 21
    Exécutez le programme en tapant. /FunLoop.sh.

Méthode 1 sur 1: exemple

Exemple de code que vous pouvez utiliser:

! / bin / bash directory = "" choice = 0 menuList () {clear echo "1. Lancez ls sur mon répertoire personnel." echo "2. Exécutez ls sur le répertoire racine." echo "3. Exécutez ls sur le répertoire bin." echo "4. Quitter le programme"} runLS () {ls -la $ directory sleep 2} while [$ choice -ne 4] do menuList read -p "Entrez votre choix:" choice if [$ choice -eq 1] puis $ directory = "~ /" runLS elif [$ choice -eq 2] puis $ directory = "/" runLS elif [$ choice -eq 3] puis $ directory = "/ bin" runLS elif [$ choice -eq 4] puis effacer echo "Merci d'utiliser les fichiers de liste" sleep 3 exit else echo "Choix invalide, veuillez réessayer" fi done 

Mises en garde

  • Des scripts incorrects peuvent avoir des effets négatifs sur votre système. Il est important d'être prudent lors de la manipulation de fichiers sur un ordinateur.

Les choses dont vous aurez besoin

  • Ordinateur avec Linux, UNIX ou OS X dessus
FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail