Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
doc:programmation:shells:fonction [21/10/2015 19:22] milou [script bash : Fonctions] |
doc:programmation:shells:fonction [23/11/2020 09:49] Hypathie [Définition d'une fonction] |
||
---|---|---|---|
Ligne 129: | Ligne 129: | ||
</note> | </note> | ||
- | ==== Les arguments d'une fonction ==== | + | ==== Les arguments du script et les paramètres d'une fonction ==== |
- | *Les appels des arguments d'une fonction sont placés dans le corps de celle-ci\\ | + | <note info> |
+ | * On voit souvent les termes arguments et paramètres comme des synonymes car les arguments passés au script peuvent être récupérés pour être utilisés comme paramètres passés à une/des fonction(s) déclarées et implémentées dans le script. | ||
+ | * Voyons d'abord comment passer des paramètres à une fonction du script. | ||
+ | </note> | ||
+ | |||
+ | *Les appels des arguments d'une fonction sont placés dans le corps de celle-ci.\\ | ||
*Et les arguments sont placés de gauche à droite et du premier au dernier, à côté du nom d'appel de la fonction\\ | *Et les arguments sont placés de gauche à droite et du premier au dernier, à côté du nom d'appel de la fonction\\ | ||
*la valeur du premier argument est référencée par ''$1''\\ | *la valeur du premier argument est référencée par ''$1''\\ | ||
*la valeur du deuxième argument est référencée par ''$2'', etc.\\ | *la valeur du deuxième argument est référencée par ''$2'', etc.\\ | ||
- | *les paramètres spéciaux ''$0'' (nom programme), ''$#'' (nombre de paramètre), $@ (tous les paramètres) , ''$*'' (chacun de tous les paramètres), ''$?'' (valeur de retour du programme) | + | *les paramètres spéciaux ''$0'' (Contient le nom du script tel qu'il a été invoqué), ''$#'' (Le nombre de paramètres passés au script), $@ (l'ensemble des arguments, un argument par paramètre) , ''$*'' (l'ensemble des paramètres sous la forme d'un seul argument), ''$?'' (Le code retour de la dernière commande), ''$$'' (le PID su shell qui exécute le script), ''$!'' (le PID du dernier processus lancé en arrière-plan) |
<code bash mon-script> | <code bash mon-script> | ||
Ligne 143: | Ligne 149: | ||
echo $0 | echo $0 | ||
echo $USER | echo $USER | ||
- | echo $1 $2 $3 | + | echo $3 $1 $2 |
echo $# | echo $# | ||
echo $@ | echo $@ | ||
Ligne 160: | Ligne 166: | ||
./mon-script | ./mon-script | ||
hypathie | hypathie | ||
- | chez debian facile | + | facile chez debian |
3 | 3 | ||
chez debian facile | chez debian facile | ||
Ligne 166: | Ligne 172: | ||
</file> | </file> | ||
+ | <note info> | ||
+ | * Les paramètres de la fonction peuvent être les paramètres passés au script. | ||
+ | </note> | ||
+ | <code bash ParamToScript.sh> | ||
+ | #!/bin/bash | ||
+ | function f | ||
+ | { | ||
+ | echo "SCRIPT_NAME : " $0 | ||
+ | echo "USER : " $USER | ||
+ | echo "Script Argument 1 : "$1 "Script Argument 2 : "$2 "Script Argument 2 : "$3 | ||
+ | } | ||
+ | f $1 $2 $3 | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | ./ParamToScript.sh arg1 arg2 arg3 | ||
+ | </code> | ||
+ | |||
+ | <file config retour de la commande> | ||
+ | SCRIPT_NAME : ./ParamToScript.sh | ||
+ | USER : nathalie | ||
+ | Script Argument 1 : \nScript Argument 2 : \Script Argument 2 : | ||
+ | </file> | ||
==== La commande interne shift ==== | ==== La commande interne shift ==== | ||
Ligne 249: | Ligne 278: | ||
Créer une fonction qui permet d'afficher une variable et les paramètres passés au script. | Créer une fonction qui permet d'afficher une variable et les paramètres passés au script. | ||
- | <code bash script essai.sh a b> | + | <code bash script essai.sh> |
#!/bin/bash | #!/bin/bash | ||
var=coucou | var=coucou |