Mise à jour : Debian 11.2 - Bullseye
Les fonctions sont des séquences de commandes bash réutilisables, généralement utilisées dans les scripts, mais pouvant être également utilisées en ligne de commande.
Sommaire
Une fonction doit-être définie (déclaration et contenu) avant son appel. Elle peut ensuite être appelée plusieurs fois. La définition est identique en ligne de commande et dans un script
La fonction peut-être déclarée
soit par la commande "function" suivie de son nom
function bonjour
....
soit par son nom suivi par ()
bonjour()
....
Le contenu de la fonction suit la déclaration et est compris entre accolades { }
function bonjour { echo Bonjour; }
function bonjour {
echo Bonjour
}
Pour vérifier la présence d'une fonction
$ declare -F bonjour
bonjour
Pour vérifier le contenu d'une fonction
$ declare -f bonjour
bonjour ()
{
echo Bonjour
}
Pour obtenir la liste de toutes les fonctions disponibles, y compris celles créés par d'autres programmes
$ declare -F |head
declare -f __expand_tilde_by_ref
declare -f __get_cword_at_cursor_by_ref
declare -f __grub_dir
declare -f __grub_get_last_option
declare -f __grub_get_options_from_help
declare -f __grub_get_options_from_usage
declare -f __grub_list_menuentries
declare -f __grub_list_modules
declare -f __grubcomp
declare -f __ltrim_colon_completions
Une fois la fonction déclarée et définie, pour lancer son exécution, l'appeler par son nom
Exemple : Fonction bonjour ci-dessus
$ bonjour
Bonjour
$ function bonjour { echo Bonjour $1; }
Exécution :
$ bonjour toto
Bonjour toto
$ bonjour titi
Bonjour titi
$ function Demo { echo $Valeur; }
$ Valeur=10
$ Demo
10
$ Valeur=abcde
$ Demo
abcde
$ Variable=0
$ function Demo { Variable=36; }
$ Demo
$ echo $Variable
36
$ Variable=0
$ function Demo { local Variable=36; }
$ Demo
$ echo $Variable
0
$ function calcul { var=$((2*$1)); echo $var; }
# ou bien
$ function calcul { echo $((2*$1)); }
$ calcul 10
20
$ X=$(calcul 10)
$ echo $X
20