« Programmation Bash/Fonctions » : différence entre les versions
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.