• 30 hours
  • Easy

Free online content available in this course.

Paperback available in this course

course.header.alt.is_certifying

You can get support and mentoring from a private teacher via videoconference on this course.

Got it!

Last updated on 10/22/19

Les fonctions

Log in or subscribe for free to enjoy all this course has to offer!

Dans ce chapitre, je vous propose de rendre notre programme plus agréable grâce aux fonctions. Et oui, en Bash aussi on peut faire des fonctions ! En fait, vous pouvez en faire dans quasiment tous les langages de programmation.

Commençons très simplement.

Qu'est-ce qu'une fonction ?

Mais, c’est quoi une fonction ? :colere:

Une fonction, c’est un ensemble d’instructions, permettant d'effectuer plusieurs tâches avec des paramètres d'entrée différents

Son utilisation vous permettra de rendre votre programme plus lisible et structuré. Ainsi, il facilitera le développement de votre programme.

Comment savoir si je peux faire une ou plusieurs fonction(s) dans mon code ?:waw:

Pas si vite ! Avant de vous lancer dans la création de vos fonctions ou de votre script,  vous devrez vous poser un maximum de questions.

Mais avant toute chose, il y a quelques points importants à connaitre.

Comment déclarer une fonction ?

En Bash, il y a deux manières pour déclarer une fonction :

# déclaration méthode 1
maFonction ()

{
bloc d’instructions 
}

#appel de ma fonction

maFonction

ou

# déclaration méthode 2

function maFonction

{
bloc d’instructions 
}

#appel de la fonction

maFonction

Vous voyez, ce n'est pas plus compliqué ! :D

Maintenant, passons à la pratique et  sauvegardez votre répertoire personnel sous Linux.

Posez-vous les bonnes questions...

Mais quelles questions dois-je me poser à part, comment sauvegarder mon répertoire personnel ? 

Cherchez bien, il y en a plein !

Par exemple :

  • Comment vais-je sauvegarder le répertoire ? (tar, cp , rysnc …)

  • Que faut-il sauvegarder dans mon répertoire personnel ? (tout ?, .bashrc, ….)

  • Ou vais-je sauvegarder le répertoire ? (/Repertoiredebackup,  sur mon autre serveur distant,  dans le cloud…) ?

  • Comment être averti et enregistrer un historique du bon ou du mauvais fonctionnement  de mon script? ( par MAIL, par fax ?, par téléphone ? dans un fichier, sur un site web, les deux … ? )

  • À quelle fréquence ?

Je suis sûr que vous en trouverez plein d’autres :D

Lorsque vous ne vous posez plus de questions, c’est qu’il est temps d’ordonner toutes les informations.

Super ! Chaque question que je me pose correspond donc à une fonction ? :euh:

Pas tout à fait ! Mais presque.

Vous pourriez par exemple avoir trois fonctions :

  • une fonction sauvegarde ;

  • une fonction log ;

  • une fonction avertissement.

Tu as dit que l’on pouvait appeler notre fonction autant de fois qu’on le souhaite. Quel est l’intérêt dans ce script puisque les fonctions sont appelées une seule fois, NON ?

 C'est vrai quand le programme est relativement court. Mais si vous souhaitez étoffer votre script et sauvegarder aussi le répertoire d'un membre de votre famille,  vous pourrez rappeler chacune des fonctions sauvegarde, log et  avertissement en passant les bons paramètres.

Je ne comprends toujours pas :'(, la fonction a été développée pour fonctionner avec le script qui sauvegarde mon répertoire personnel, NON ?

Justement NON !  En plus de rendre notre programme plus lisible, la fonction doit rester le plus générique possible, car le principe c’est aussi de réutiliser les fonctions sans coder un nouveau bloc d’instruction et faire des doublons.

En résumé :

  • Une fonction comprend plusieurs instructions.

  • Vous pouvez l'appeler autant de fois que vous voulez dans votre code : laissez donc votre fonction assez générique et faites-la varier grâce aux paramètres que vous pouvez préciser en l'appelant.

  • Vous pouvez déclarer une fonction Bash avec maFonction ()ou function maFonction.

  • Vous faites ensuite appel à votre fonction maFonction() en tapant simplement dans votre code maFonction

Example of certificate of achievement
Example of certificate of achievement