spacer.png, 0 kB
  • Ce site Internet, comme certains autres, est auto-hébergé. Le temps du minitel 2.0 est révolu et je vous encourage vivement d'héberger vos propres services Internet. C'est l'essence même du réseau des réseaux que constitue l'Internet. Un ensemble de systèmes largement distribués.

  • GNU/Linux, un système d'exploitation gratuit fiable et sûr. Le ministère des finances et la gendarmerie nationale ont adoptés ce système.

  • GNU/Linux, un système performant. Les images du film Avatar ont été générées sur un cluster de 35000 machines sous l'une des distributions GNU/Linux, Ubuntu.

  • GNU/Linux, un système idéal pour le réseau, la virtualisation de systèmes et le clustering, la très haute disponibilité applicative ...

  • Libérez votre S.I. ! Sublimez la puissance de vos stations de travail et serveurs sous GNU/Linux et Unix ...

>>> Nouvelles
Le 09.09.2011 19:07 Catégorie : SERVEUR

Fonctions Bash

Vous pouvez améliorer les différents scripts proposés sur ce site Internet en leur intégrant des fonctions bash.


Une fonction bash vous permet de ne pas répéter un bout de code dans votre programme. Vous pouvez également grouper vos fonctions dans des fichiers de bibliothèques via la directive source CheminDeVotreBibliotheque.

Exemple :

  1. #!/bin/bash
  2. source /scripts/mabiblio.sh
  3. .........

Une fonction bash peut retourner un code d'erreur numérique, ou une variable quelconque.

Un exemple de script bash commenté, utilisant des fonctions, pour en comprendre le principe :

  1. #!/bin/bash
  2.  
  3. # Licence GPL
  4. # Copyleft 2005 Thierry Bazzanella
  5.  
  6. function OuiNon {
  7. local qst def rep
  8. qst="${1:-'Oui ou Non ? '}"
  9. def="$2"
  10. while :
  11. do
  12. read -p "$qst" rep || exit 1
  13. case "$(echo "${rep:-$def}" | tr '[a-z]' '[A-Z]')" in
  14. O|OUI|Y|YES) return 0 ;;
  15. N|NON|NO) return 1 ;;
  16. "" ) : ;;
  17. *) echo "Reponse invalide: $rep" ;;
  18.              esac
  19. done
  20. }
  21.  
  22. # avec un parametre
  23. function tafonction {
  24. echo "$1 Visiteur !"
  25. return 7 # de 0 a 255 max
  26. }
  27.  
  28. # Appel de ta fonction
  29. tafonction "Coucou"
  30. #Recuperation d'un code de retour de tafonction:
  31. # doit etre declaree de suite apres l'appel de tafonction
  32. CODERETOUR_TAFONCTION=$( echo $? )
  33. VALEURRETOUR_TAFONCTION=$( tafonction "et bien" )
  34.  
  35. #Recuperation de la valeur du parametre
  36. # Retourne par tafonction
  37. # dans ton programme principal:
  38. echo "Une autre valeur de retour est : $VALEURRETOUR_TAFONCTION"
  39. echo "Le code de retour est $CODERETOUR_TAFONCTION"
  40. # Avec echo cequetuveux dans tafonction te permet de recuperer
  41. # une valeur quelconque sur l'entree standard
  42. # Par contre le return 7 te permet de recuperer un code de retour numerique
  43.  
  44. # tu peux donc avec ces elements faire une fonction OuiNon de ton code
  45. # et declarer le code de cette fonction une seule fois au debut
  46. # de ton programme et l'appeler autant de fois que necessaire.
  47.  
  48. if OuiNon "Etes-vous favorable a l'utilisation des fonctions ? votre reponse => " Oui
  49. then echo "OK, vous etes favorable. Vous gagnerez en efficacite"
  50. else echo "Ok, vous n'etes pas favorable. Bonjour la maintenance du code !"
  51. fi
  52.  
  53. if OuiNon "Etes-vous favorable a l'utilisation de GNU/Linux ? votre reponse => " Oui
  54. then echo "OK, vous etes favorable. Vous gagnerez en efficacite"
  55. else echo "Ok, vous n'etes pas favorable. Vous preferez ce bon vieux CP/M !"
  56. fi

Copiez/Collez ce petit script et rendez-le executable en console :

  1. chmod +x petitscript.sh

Puis executez-le :

  1. ./petitscript.sh

Il faut bien que vous travaillez un peu, hein ?


Commentaires
Pas de commentaire

Ajouter un commentaire

* - champ obligatoire

*

Image CAPTCHA pour prévenir l'utilisation abusive
Si vous ne pouvez lire toutes les lettres ou chiffres, cliquez ici.
*

*

spacer.png, 0 kB
spacer.png, 0 kB
Real Time Web Analytics