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
Prochaine révision Les deux révisions suivantes
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [28/05/2014 11:03]
Hypathie [Créer des paramètres de position : la commande set + argument(s)]
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [28/05/2014 16:02]
Hypathie [Créer des paramètres de position : la commande set + argument(s)]
Ligne 425: Ligne 425:
 Et dans ce cas, un paramètre c'est une valeur ou encore une "​variable"​ un peu particulière,​ voyons ce qui fait que la valeur d'un paramètre ce n'est pas exactement la valeur d'une variable** Et dans ce cas, un paramètre c'est une valeur ou encore une "​variable"​ un peu particulière,​ voyons ce qui fait que la valeur d'un paramètre ce n'est pas exactement la valeur d'une variable**
  
-====comparons "​mon-script1"​ avec "​mon-script2"​ :==== +**Observez:** 
- +  * mon-script1
-**1) Les paramètres dont les valeurs sont déclarés avec set ne sont pas enregistrés comme les variables déclarées ​:**+
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Ligne 442: Ligne 441:
 </​code>​ </​code>​
  
-**=> La valeur d'un paramètre ​a une position ​précise !** +**=> La valeur d'un paramètre ​de position n'est pas pointé !**
- +
-**=>un paramètre ​n'est pas une variable ; tous les paramètres de position sont ré-initialisés dès que set pose un nouvel argument tandis qu'il ne réinitialise pas une variable déjà créée.** +
-  * ** De même, set-- annule tous les paramètres initialisés (et non pas la ou les variable(s)) par affectation directe ou par une structure conditionnelle).**+
  
 +  * mon-script2 :
 <code bash> <code bash>
 +#!/bin/bash
 #!/bin/bash #!/bin/bash
 var=lettres var=lettres
 set a b c set a b c
-echo $var $1 $2 $3+echo $var 
 +echo $
 +echo " " ​
 set gros_pater set gros_pater
-echo $var $1+echo $var 
 +echo $1
 set -- set --
-echo $var $1+echo $var  
 +echo $1
 </​code>​ </​code>​
 **Retour :** **Retour :**
 <​code>​ <​code>​
-lettres ​a b c       # valeur de var et des paramètres ​a b c +lettres 
-lettres gros_pater ​ # valeur de var et du paramètre gros_pater (initialiser ce nouveau paramètre à effacer les paramètres a b c mais pas la variable var +a b c 
-lettres ​            # set-- rend indéfini la ou les valeur(s) des paramètres de position précédemment initialisés+  
 +lettres 
 +gros_pater 
 +lettres 
 + 
 </​code>​ </​code>​
 +  * **=> dans un script, contrairement à la valeur d'une variable, la valeur d'un paramètre de position créé avec set est ré-initialisé dès que set pose un nouvel paramètre de position, tandis qu'il est possible de déclarer une nouvelle variable au sein d'un même script.**
 +  * ** De même, set-- annule tous les paramètres position initialisés précédemment dans le script.**
 <note > <note >
   *Sans argument la commande set affiche TOUS les noms et TOUTES les valeurs des variables pré-définies (celles du script qui l'​appelle aussi). Mais elle n'​enregistre pas une valeur d'un valeur non-déclarée ! FIXME\\   *Sans argument la commande set affiche TOUS les noms et TOUTES les valeurs des variables pré-définies (celles du script qui l'​appelle aussi). Mais elle n'​enregistre pas une valeur d'un valeur non-déclarée ! FIXME\\
Ligne 501: Ligne 510:
 </​note>​ </​note>​
  
-**2) Lancez "​mon-script2"​ (ci-dessous) successivement ​avec les arguments a ; puis b ; puis a b ; puis sans argument :**+====Déclaration de la valeur d'une variable ​avec une structure conditionnelle ====
  
 +**La valeur du paramètre d'une conditionnelle est pointée par cette conditionnelle sans forcément être nommé.**
 +(Lancez "​mon-script"​ successivement sans argument, puis un, deux trois, etc. arguments.)
 <​code>​ <​code>​
 #!/bin/bash #!/bin/bash
Ligne 518: Ligne 529:
 </​code>​ </​code>​
  
-<code user> +**Mais la valeur des paramètres d'une conditionnelle peut être "​nommé"​ du nom de la variable "​i"​ d'une boucle qui prend tour à tour la valeur de chacun des paramètres de position.**
-mon-script2 a +
-</​code>​+
  
-<​code ​user+<​code>​ 
-mon-script2 b +#!/bin/bash 
-</code>+for i in "​$@"​ 
 + do 
 +   echo "Vous avez donné à la variable '​i'​ la valeur : $i." 
 +    
 +   if [ "​$1"​ != "​coucou"​ ] ; then 
 +      echo "Le premier argument doit être '​coucou'​."​ 
 +    else  
 +      echo "​OK"​ 
 +     if [ "​$2"​ != "​toi"​ ] ; then 
 +        echo "Le deuxième paramètre doit être '​toi'​."​ 
 +       else  
 +        echo "​MERCI"​ 
 +     fi 
 +   fi 
 + ​done 
 +echo " " #pour sauter une ligne
  
-<code user> +echo $@
-mon-script2 a b+
 </​code>​ </​code>​
  
-<code user> +** On peut faire passer une boucle par des paramètres de position et faire prendre à sa variable tour à tour la valeur de ces paramètres de position.**\\ 
-mon-script2 +**Mais contrairement au script précédent,​ on ne peut alors plus ajouter des paramètres de l'​extérieur du script, depuis le terminal en ajoutant des arguments après le nom du script.** ​
-</​code>​+
  
-====Déclaration de la valeur d'une variable par une structure conditionnelle ==== +=====Créer des variables ​: les tableaux=====
-**Contrairement à la valeur d'une variable, la valeur d'un paramètre (créé au moyen d'une conditionnelle) est pointée par cette conditionnelle sans que celle-ci soit forcément nommée.** +
- +
-=====Créer des paramètres de position ​: les tableaux=====+
 Les variables de chaque case d'un tableau, ont elles aussi une position définie par l'​utilisateur,​ ou automatiquement lors de la création du tableau.\\ ​ Les variables de chaque case d'un tableau, ont elles aussi une position définie par l'​utilisateur,​ ou automatiquement lors de la création du tableau.\\ ​
 Pour plus de précision sur la création et l'​utilisation de tableau dans les scripts voir ici : [[atelier:​chantier:​page-man-bash-v-les-tableaux]] Pour plus de précision sur la création et l'​utilisation de tableau dans les scripts voir ici : [[atelier:​chantier:​page-man-bash-v-les-tableaux]]
 +
 =====Variable et substitution de commandes ===== =====Variable et substitution de commandes =====
   *$( )   *$( )
doc/programmation/shells/debuter-avec-les-scripts-shell-bash.txt · Dernière modification: 20/08/2022 08:35 par paskal

Pied de page des forums

Propulsé par FluxBB