« Programmation Bash/Fonctions » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
m Révocation des modifications de JackPotte (discussion) vers la dernière version de 109.218.201.77
m →‎Variables : Ortho.
Ligne 65 : Ligne 65 :
Outre les paramètres, une fonction peut utiliser plusieurs variables:
Outre les paramètres, une fonction peut utiliser plusieurs variables:


* '''Réutiliser toutes les variables globales du script'''. Par défaut dans un script shell, les variables sont déclarés comme étant '''globales'''..
* '''Réutiliser toutes les variables globales du script'''. Par défaut dans un script shell, les variables sont déclarés comme étant '''globales'''.
* '''En déclarer de nouvelles'''.
* '''En déclarer de nouvelles'''.
* '''Déclarer des variables locales'''. Pour déclarer une variable localement, il faut la faire précéder du mot clé <code>local</code>. Une telle variable ne sera utilisable que dans la fonction qui la déclare durant l'exécution de celle-ci mais sera considérée comme globale (donc connue) par les fonctions appelées à partir de cette fonction (après la déclaration locale de la variable).
* '''Déclarer des variables locales'''. Pour déclarer une variable localement, il faut la faire précéder du mot clé <code>local</code>. Une telle variable ne sera utilisable que dans la fonction qui la déclare durant l'exécution de celle-ci mais sera considérée comme globale (donc connue) par les fonctions appelées à partir de cette fonction (après la déclaration locale de la variable).

Version du 23 janvier 2016 à 20:23

Comme pour tout autre langage, l'utilisation de fonctions facilite le développement de scripts et la structuration de ceux-ci.

Déclaration

Pour déclarer une fonction, on utilise la syntaxe suivante:

maFonction()
{
  instructions
}

La déclaration d'une fonction doit toujours se situer avant son appel.

Appel et paramètres

Appel

Pour appeler une fonction, on utilise la syntaxe suivante:

maFonction param_1 param_2 ... param_n

Paramètres passés à la fonction

Ces paramètres sont bien sûrs optionnels. À l'intérieur de la fonction, ils sont représentés, respectivement, par les variables $1, $2,... , $n. $0 représente toujours le nom du script (et non de la fonction) qui s'exécute.

Le nombre de paramètres passés à une fonction est représenté par la variable $#

Exemple:

#!/bin/sh

# déclaration dune fonction
maFonction() 
{ local varlocal="je suis la fonction"
  echo "$varlocal"
  echo "Nombres de paramètres : $#"
  echo $1
  echo $2
}

# appel de ma fonction
maFonction "Hello" "World!"

Ce qui donne le résultat suivant:

je suis la fonction
Nombres de paramètres : 2
Hello
World!

Fin

Une fonction termine son exécution lorsqu'elle n'a plus d'instructions à exécuter ou lorsqu'elle rencontre l'instruction return ou exit. Ces instructions peuvent être suivies d'un entier positif, qui correspond à la valeur de retour de la fonction. Si aucune valeur n'est spécifiée, c'est la valeur 0 qui est renvoyée.

La valeur de retour de la dernière fonction appelée est stockée dans la variable $?

Variables

Outre les paramètres, une fonction peut utiliser plusieurs variables:

  • Réutiliser toutes les variables globales du script. Par défaut dans un script shell, les variables sont déclarés comme étant globales.
  • En déclarer de nouvelles.
  • Déclarer des variables locales. Pour déclarer une variable localement, il faut la faire précéder du mot clé local. Une telle variable ne sera utilisable que dans la fonction qui la déclare durant l'exécution de celle-ci mais sera considérée comme globale (donc connue) par les fonctions appelées à partir de cette fonction (après la déclaration locale de la variable).

Pour éviter d'accéder en lecture à une variable n'ayant pas d'existence, on peut inscrire la commande set -u en début de script.