logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:programmation:shells:fonction [20/10/2015 18:15]
milou [Fonction, variables et paramètres passés au script]
doc:programmation:shells:fonction [23/11/2020 09:52] (Version actuelle)
Hypathie [Définition d'une fonction]
Ligne 2: Ligne 2:
  
   * Objet : script bash : Fonctions   * Objet : script bash : Fonctions
-  * Niveau requis : {{tag>​débutant}}+  * Niveau requis : {{tag>​débutant ​avisé}}
   * Commentaires : FIXME   * Commentaires : FIXME
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
   * Suivi :    * Suivi : 
-    * Création par [[user>​Hypathie]] 18/​03/​2014 +    * Création par [[user>​Hypathie]] ​le 18/​03/​2014 
-    * Testé par [[user>​Hypathie]] ​le <Juin 2014> +    * Testé par [[user>​Hypathie]] Juin 2014 
-  * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=92203#p92203 ​| Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))+  * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=142815#p142815 ​| Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
 + 
 +Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! 
  
------- 
  
 **Nota : Les autres wiki :** **Nota : Les autres wiki :**
-  * [[atelier:chantier:​debuter-avec-les-scripts-shell-bash]] +  * [[doc:​programmation:shells:​debuter-avec-les-scripts-shell-bash]] 
-  * [[atelier:chantier:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]] +  * [[doc:programmation:​shells:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]] 
-  * [[atelier:chantier:​script-bash-detail-sur-les-parametres-et-les-boucles|modification de variable et de paramètre]]  +  * [[doc:​programmation:shells:​script-bash-detail-sur-les-parametres-et-les-boucles|modification de variable et de paramètre]]  
-  * [[atelier:chantier:​script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] +  * [[doc:​programmation:shells:​script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] 
-  * [[atelier:chantier:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] +  * [[doc:​programmation:shells:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] 
-  * [[doc:​programmation:​bash:script:​tableaux|script-bash-les-tableaux]]+  * [[doc:​programmation:​shells:​tableaux|script-bash-les-tableaux]]
   * ;-)   * ;-)
   ​   ​
-Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !+
  
 ===== Définition d'une fonction ===== ===== Définition d'une fonction =====
Ligne 73: Ligne 75:
   * Exemple :   * Exemple :
  
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 function f {  function f { 
Ligne 97: Ligne 99:
   * Syntaxe avec ''​nom-de-la-fonction (){''​ :   * Syntaxe avec ''​nom-de-la-fonction (){''​ :
  
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 mafonction (){ mafonction (){
Ligne 113: Ligne 115:
   * Syntaxe proche de C :   * Syntaxe proche de C :
  
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 mafonction () mafonction ()
Ligne 127: 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>+ 
 +<code bash mon-script.sh>
 #!/bin/bash #!/bin/bash
 function f function f
Ligne 141: Ligne 149:
 echo $0 echo $0
 echo $USER echo $USER
-echo $1 $2 $3+echo $3 $1 $2
 echo $# echo $#
 echo $@ echo $@
Ligne 158: Ligne 166:
 ./​mon-script ./​mon-script
 hypathie hypathie
-chez debian ​facile+facile ​chez debian
 3 3
 chez debian facile chez debian facile
Ligne 164: 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 :  hypathie
 +Script Argument 1 :  \nScript Argument 2 :  \Script Argument 2 : 
 +</​file>​
 ==== La commande interne shift ==== ==== La commande interne shift ====
  
 Cette commande permet de décaler la numérotation des paramètres de position de la fonction Cette commande permet de décaler la numérotation des paramètres de position de la fonction
-<code bash>+<code bash script minipoesie>
 function minipoesie function minipoesie
 { {
Ligne 220: Ligne 251:
 Voir le tuto : [[doc:​programmation:​shell:​pipe|Le pipe ou tuyau]] Voir le tuto : [[doc:​programmation:​shell:​pipe|Le pipe ou tuyau]]
  
-<code bash>+<code bash script getip.sh>
 #!/bin/bash #!/bin/bash
 getip (){ getip (){
Ligne 228: Ligne 259:
 </​code>​ </​code>​
 ou ou
-<code bash>+<code bash script getip.sh>
 #!/bin/bash #!/bin/bash
 getip (){ getip (){
Ligne 247: 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>+<code bash script essai.sh>
 #!/bin/bash #!/bin/bash
 var=coucou var=coucou
Ligne 272: Ligne 303:
  
 À savoir : Comme la commande "​exit",​ la commande "​return"​ permet de changer le code de retour, mais contrairement à "​exit",​ return fait sortir de la fonction (arrête l'​exécution des commandes du corps de la fonction), sans arrêter l'​ensemble du programme (script). À savoir : Comme la commande "​exit",​ la commande "​return"​ permet de changer le code de retour, mais contrairement à "​exit",​ return fait sortir de la fonction (arrête l'​exécution des commandes du corps de la fonction), sans arrêter l'​ensemble du programme (script).
-<code bash>+<code bash script>
 #!/bin/bash #!/bin/bash
  
Ligne 324: Ligne 355:
   * Soit le script "​echocolor.sh"​ ci-dessous :   * Soit le script "​echocolor.sh"​ ci-dessous :
  
-<code bash>+<code bash script echocolor.sh>
 # voici des variables affectée des codes couleurs qu'on trouve sur le net # voici des variables affectée des codes couleurs qu'on trouve sur le net
 noir='​\e[0;​30m'​ noir='​\e[0;​30m'​
Ligne 353: Ligne 384:
   * Dans le script "​source.sh"​ ci-dessous, on va se servir de la fonction "​echocolor"​ du script "​echocolor.sh"​ pour coloriser les sorties des commandes.   * Dans le script "​source.sh"​ ci-dessous, on va se servir de la fonction "​echocolor"​ du script "​echocolor.sh"​ pour coloriser les sorties des commandes.
  
-<code bash>+<code bash script source.sh>
 #!/bin/bash #!/bin/bash
 source echocolor.sh ​ # ou .nom_du_script source echocolor.sh ​ # ou .nom_du_script
Ligne 377: Ligne 408:
 OU MIEUX : OU MIEUX :
  
-<code bash>+<code bash script source.sh>
 #!/bin/bash #!/bin/bash
 source echocolor.sh ​ # ou .nom_du_script source echocolor.sh ​ # ou .nom_du_script
doc/programmation/shells/fonction.1445357722.txt.gz · Dernière modification: 20/10/2015 18:15 par milou

Pied de page des forums

Propulsé par FluxBB